fetch config directories

This commit is contained in:
deathbybandaid 2019-06-20 11:18:30 -04:00
parent ef4bd6078c
commit 55c5e32df9
7 changed files with 41 additions and 46 deletions

View File

@ -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)

View File

@ -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")

View File

@ -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")

View File

@ -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):

View File

@ -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()

View File

@ -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')

View File

@ -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)