mirror of
https://github.com/SpiceBot/SpiceBot.git
synced 2026-11-10 21:50:59 -05:00
fetch config directories
This commit is contained in:
parent
ef4bd6078c
commit
55c5e32df9
@ -13,6 +13,7 @@ import aiml
|
||||
|
||||
from .Database import db as botdb
|
||||
from .Config import config as botconfig
|
||||
from .Read import read as botread
|
||||
|
||||
import spicemanip
|
||||
|
||||
@ -59,16 +60,7 @@ class SpiceBot_AI():
|
||||
self.save_brain()
|
||||
|
||||
def load_brain(self):
|
||||
import sopel_modules
|
||||
braindirs = []
|
||||
for plugin_dir in set(sopel_modules.__path__):
|
||||
configsdir = os.path.join(plugin_dir, "SpiceBot_Configs")
|
||||
aimldir = os.path.join(configsdir, "SpiceBot_AI")
|
||||
braindirs.append(aimldir)
|
||||
|
||||
if len(botconfig.SpiceBot_AI.extra):
|
||||
for extrabraindir in botconfig.SpiceBot_AI.extra:
|
||||
braindirs.append(extrabraindir)
|
||||
braindirs = botread.get_config_dirs("SpiceBot_AI")
|
||||
|
||||
# learn directories
|
||||
self.learn(braindirs)
|
||||
|
||||
@ -6,20 +6,14 @@ This is the SpiceBot JSON Commands system.
|
||||
This Class stores commands in an easy to access manner
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
from sopel.config.types import StaticSection, ListAttribute
|
||||
import sopel_modules
|
||||
|
||||
from .Config import config as botconfig
|
||||
from .Read import read as botread
|
||||
from .Commands import commands as botcommands
|
||||
|
||||
import spicemanip
|
||||
|
||||
import requests
|
||||
from fake_useragent import UserAgent
|
||||
from lxml import html
|
||||
import urllib
|
||||
|
||||
|
||||
@ -40,15 +34,7 @@ class BotJSONCommands():
|
||||
"feeds", "search"
|
||||
]
|
||||
|
||||
dir_to_scan = []
|
||||
for plugin_dir in set(sopel_modules.__path__):
|
||||
configsdir = os.path.join(plugin_dir, "SpiceBot_Configs")
|
||||
gifcfgdir = os.path.join(configsdir, "SpiceBot_DictComs")
|
||||
dir_to_scan.append(gifcfgdir)
|
||||
|
||||
if len(botconfig.SpiceBot_DictComs.extra):
|
||||
for extragifcfgdir in botconfig.SpiceBot_DictComs.extra:
|
||||
dir_to_scan.append(extragifcfgdir)
|
||||
dir_to_scan = botread.get_config_dirs("SpiceBot_DictComs")
|
||||
|
||||
valid_dictcom_dict = botread.json_to_dict(dir_to_scan, "Dictionary Commands", "SpiceBot_DictComs")
|
||||
|
||||
|
||||
@ -3,7 +3,6 @@ from __future__ import unicode_literals, absolute_import, division, print_functi
|
||||
"""How to handle gifs"""
|
||||
|
||||
from sopel.config.types import StaticSection, ValidatedAttribute, ListAttribute
|
||||
import sopel_modules
|
||||
|
||||
from .Config import config as botconfig
|
||||
from .Read import read as botread
|
||||
@ -11,7 +10,6 @@ from .Commands import commands as botcommands
|
||||
|
||||
import spicemanip
|
||||
|
||||
import os
|
||||
from fake_useragent import UserAgent
|
||||
import urllib
|
||||
import random
|
||||
@ -36,15 +34,7 @@ class BotGif():
|
||||
self.header = {'User-Agent': str(UserAgent().chrome)}
|
||||
self.valid_api = {}
|
||||
|
||||
dir_to_scan = []
|
||||
for plugin_dir in set(sopel_modules.__path__):
|
||||
configsdir = os.path.join(plugin_dir, "SpiceBot_Configs")
|
||||
gifcfgdir = os.path.join(configsdir, "SpiceBot_Gif")
|
||||
dir_to_scan.append(gifcfgdir)
|
||||
|
||||
if len(botconfig.SpiceBot_Gif.extra):
|
||||
for extragifcfgdir in botconfig.SpiceBot_Gif.extra:
|
||||
dir_to_scan.append(extragifcfgdir)
|
||||
dir_to_scan = botread.get_config_dirs("SpiceBot_Gif")
|
||||
|
||||
valid_gif_api_dict = botread.json_to_dict(dir_to_scan, "Gif API", "SpiceBot_Gif")
|
||||
|
||||
|
||||
@ -17,15 +17,27 @@ class BotRead():
|
||||
|
||||
def get_config_dirs(self, config_dir_name):
|
||||
dir_to_scan = []
|
||||
|
||||
# check config directory stored within this project
|
||||
for plugin_dir in set(sopel_modules.__path__):
|
||||
configsdir = os.path.join(plugin_dir, "SpiceBot_Configs")
|
||||
cfgdir = os.path.join(configsdir, config_dir_name)
|
||||
dir_to_scan.append(cfgdir)
|
||||
if os.path.exists(cfgdir) and os.path.isdir(cfgdir):
|
||||
if len(os.listdir(cfgdir)) > 0:
|
||||
dir_to_scan.append(cfgdir)
|
||||
|
||||
extradir = eval("botconfig." + config_dir_name)
|
||||
# attempt to check for extra directories
|
||||
try:
|
||||
extradir = eval("botconfig." + config_dir_name + ".extra")
|
||||
except Exception as e:
|
||||
extradir = e
|
||||
extradir = []
|
||||
if len(extradir):
|
||||
for extracfgdir in extradir:
|
||||
dir_to_scan.append(extracfgdir)
|
||||
if os.path.exists(extracfgdir) and os.path.isdir(extracfgdir):
|
||||
if len(os.listdir(extracfgdir)) > 0:
|
||||
dir_to_scan.append(extracfgdir)
|
||||
|
||||
return dir_to_scan
|
||||
|
||||
def json_to_dict(self, directories, configtypename="Config File", log_from='read_directory_json_to_dict', logging=True):
|
||||
|
||||
@ -2,27 +2,28 @@
|
||||
from __future__ import unicode_literals, absolute_import, division, print_function
|
||||
"""A way to search google"""
|
||||
|
||||
import sopel_modules
|
||||
from sopel.config.types import StaticSection, ListAttribute
|
||||
|
||||
from .Read import read as botread
|
||||
from .Config import config as botconfig
|
||||
|
||||
import os
|
||||
from fake_useragent import UserAgent
|
||||
import requests
|
||||
import time
|
||||
|
||||
|
||||
class SpiceBot_Sherlock_MainSection(StaticSection):
|
||||
extra = ListAttribute('extra')
|
||||
|
||||
|
||||
class Sherlock():
|
||||
|
||||
def __init__(self):
|
||||
self.setup_sherlock()
|
||||
self.header = {'User-Agent': str(UserAgent().chrome)}
|
||||
self.dict = {}
|
||||
|
||||
dir_to_scan = []
|
||||
for plugin_dir in set(sopel_modules.__path__):
|
||||
configsdir = os.path.join(plugin_dir, "SpiceBot_Configs")
|
||||
usercfgdir = os.path.join(configsdir, "SpiceBot_Sherlock")
|
||||
dir_to_scan.append(usercfgdir)
|
||||
dir_to_scan = botread.get_config_dirs("SpiceBot_Sherlock")
|
||||
|
||||
valid_usernames_dict = botread.json_to_dict(dir_to_scan, "Sherlock", "SpiceBot_Sherlock")
|
||||
|
||||
@ -30,6 +31,9 @@ class Sherlock():
|
||||
self.dict[social_network] = valid_usernames_dict[social_network]
|
||||
self.dict[social_network]["cache"] = dict()
|
||||
|
||||
def setup_sherlock(self):
|
||||
botconfig.define_section("SpiceBot_Sherlock", SpiceBot_Sherlock_MainSection, validate=False)
|
||||
|
||||
def check_network(self, username, social_network):
|
||||
username = str(username).lower()
|
||||
|
||||
|
||||
@ -10,6 +10,7 @@ from .Update import SpiceBot_Update_MainSection
|
||||
from .Gif import SpiceBot_Gif_MainSection
|
||||
from .DictComs import SpiceBot_DictComs_MainSection
|
||||
from .Reddit import SpiceBot_Reddit_MainSection
|
||||
from .Sherlock import SpiceBot_Sherlock_MainSection
|
||||
from .Kick import SpiceBot_Kick
|
||||
from .osd import SpiceBot_OSD
|
||||
|
||||
@ -58,3 +59,6 @@ def configure(config):
|
||||
|
||||
config.define_section("SpiceBot_DictComs", SpiceBot_DictComs_MainSection, validate=False)
|
||||
config.SpiceBot_DictComs.configure_setting('extra', 'SpiceBot_DictComs API Extra directory')
|
||||
|
||||
config.define_section("SpiceBot_Sherlock", SpiceBot_Sherlock_MainSection, validate=False)
|
||||
config.SpiceBot_Sherlock.configure_setting('extra', 'SpiceBot_Sherlock API Extra directory')
|
||||
|
||||
@ -20,6 +20,7 @@ from .osd import SopelWrapperOSD, ToolsOSD, SopelOSD, SpiceBot_OSD
|
||||
from .Kick import SopelWrapperKICK, SopelKICK, SpiceBot_Kick
|
||||
from .Gif import SpiceBot_Gif_MainSection
|
||||
from .DictComs import SpiceBot_DictComs_MainSection
|
||||
from .Sherlock import SpiceBot_Sherlock_MainSection
|
||||
from .AI import SpiceBot_AI_MainSection
|
||||
|
||||
|
||||
@ -61,6 +62,8 @@ def setup(bot):
|
||||
|
||||
setup_dictcoms(bot)
|
||||
|
||||
setup_sherlock(bot)
|
||||
|
||||
|
||||
def setup_config(bot):
|
||||
logs.log('SpiceBot_Config', "Setting Up Configuration")
|
||||
@ -159,3 +162,7 @@ def setup_reddit(bot):
|
||||
|
||||
def setup_dictcoms(bot):
|
||||
bot.config.define_section("SpiceBot_DictComs", SpiceBot_DictComs_MainSection, validate=False)
|
||||
|
||||
|
||||
def setup_sherlock(bot):
|
||||
bot.config.define_section("SpiceBot_Sherlock", SpiceBot_Sherlock_MainSection, validate=False)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user