diff --git a/bot1/__init__.py b/bot1/__init__.py index 950c15c..172da22 100644 --- a/bot1/__init__.py +++ b/bot1/__init__.py @@ -5,22 +5,11 @@ from urllib.parse import urljoin # This is the settings part for the bot logic #from misc import post_to_solr from .users import UserManager +import settings -env=environ.Env( - CHATFILE=(str,"chats.yaml"), - USERFILE=(str,"users.yaml"), - TARGET=(str,"https://alpha.2020.fet.at"), - URL_HOSTNAME=(str, "bot.2020.fet.at" ), - -) -CHATFILE= env('CHATFILE') -USERFILE=env('USERFILE') -TARGET=env('TARGET') -URL_HOSTNAME=env('URL_HOSTNAME') - -fet=fet2020postapi(urljoin(TARGET,"api/posts/")) +fet=fet2020postapi(urljoin(settings.TARGET,"api/posts/")) users=UserManager() diff --git a/bot1/chats.py b/bot1/chats.py index e8d8883..4c5fa0f 100644 --- a/bot1/chats.py +++ b/bot1/chats.py @@ -1,5 +1,5 @@ import yaml -from . import CHATFILE, TARGET, URL_HOSTNAME + from pytgbot.bot.sync import SyncBot from pytgbot.api_types.sendable.inline import ( InlineQueryResultArticle, @@ -23,7 +23,7 @@ import logging logger = logging.getLogger() from misc import SaveFileMapping, SaveFileObject from lxml.html.clean import clean_html, Cleaner - +import settings solr = SolrFet2020() @@ -181,10 +181,10 @@ class Chat(BaseChat): InlineQueryResultArticle( id=d["url"][0:49], title=d["title"], - url=urljoin(TARGET, d["url"]), - thumb_url=urljoin(TARGET, d["image"]), + url=urljoin(settings.TARGET, d["url"]), + thumb_url=urljoin(settings.TARGET, d["image"]), input_message_content=InputTextMessageContent( - message_text=urljoin(TARGET, d["url"]) + message_text=urljoin(settings.TARGET, d["url"]) ), ) for d in r[0:10] @@ -259,9 +259,9 @@ class Chat(BaseChat): u.token = "afwerve" u.a = 1 self.reply_msg( - urljoin("https://" + URL_HOSTNAME, "/auth/%s/%s" % (u.id, u.token)) + urljoin("https://" + settings.URL_HOSTNAME, "/auth/%s/%s" % (u.id, u.token)) ) - self.send_msg(urljoin("https://", URL_HOSTNAME)) + self.send_msg(urljoin("https://", settings.URL_HOSTNAME)) users.to_file() return True else: @@ -291,7 +291,7 @@ def get_command_from_update(update): class ChatManager(SaveFileMapping): def __init__(self, bot): - super().__init__(file=CHATFILE) + super().__init__(file=settings.CHATFILE) if not type(bot) is SyncBot: raise TelegramIntegrationException( "This ChatManager needs a SyncBot from pytgbot as an argument" diff --git a/bot1/states.py b/bot1/states.py index 4853009..461a96e 100644 --- a/bot1/states.py +++ b/bot1/states.py @@ -1,6 +1,6 @@ from statemachine import StateMachine, State from pytgbot.api_types.sendable.reply_markup import InlineKeyboardButton,InlineKeyboardMarkup -from . import fet,TARGET +from . import fet from urllib.parse import urljoin import logging logger=logging.getLogger() @@ -125,11 +125,11 @@ class CreatePostWorkflow(TelegramWorkflow): self.p["post_type"]="N" self.p["has_agenda"]="False" self.p["public_date"]=datetime.date.today() - self.send("posting to %s" % TARGET) + self.send("posting to %s" % settings.TARGET) r,d=fet.create(self.p) logger.info(r) if r ==201: - self.send("Eingabe fertig:%s" % str(urljoin(TARGET,"posts/"+d["slug"]))) + self.send("Eingabe fertig:%s" % str(urljoin(settings.TARGET,"posts/"+d["slug"]))) else: self.send("Fehler beim posten -- sorry") diff --git a/settings.py b/settings.py index 6c0eb62..27f8658 100644 --- a/settings.py +++ b/settings.py @@ -1 +1,20 @@ -STUFF="sdf" \ No newline at end of file +import environ +STUFF="sdf" +env = environ.Env( + SOLR_HOST=(str, "http://localhost:8980"), TARGET=(str, "https://alpha.2020.fet.at") +) + +TARGET=env("TARGET") +SOLR_HOST=env("SOLR_HOST") +env=environ.Env( + CHATFILE=(str,"chats.yaml"), + USERFILE=(str,"users.yaml"), + TARGET=(str,"https://alpha.2020.fet.at"), + URL_HOSTNAME=(str, "bot.2020.fet.at" ), + +) + +CHATFILE= env('CHATFILE') +USERFILE=env('USERFILE') +TARGET=env('TARGET') +URL_HOSTNAME=env('URL_HOSTNAME') \ No newline at end of file diff --git a/solrfet2020/__init__.py b/solrfet2020/__init__.py index c21658e..07b037f 100644 --- a/solrfet2020/__init__.py +++ b/solrfet2020/__init__.py @@ -1,10 +1,6 @@ from lxml.html.clean import clean_html, Cleaner -import environ -import settings -env = environ.Env( - SOLR_HOST=(str, "http://localhost:8980"), TARGET=(str, "https://alpha.2020.fet.at") -) +import settings import pysolr from .convert import post_to_solr, member_to_solr @@ -13,14 +9,13 @@ from fet2020api import fet2020memberapi, fet2020api import yaml from .solr_to_objects import result_to_object -fet = fet2020api(urljoin(env("TARGET"), "api/posts/"), pk="slug") -fetmember = fet2020memberapi(urljoin(env("TARGET"), "api/members/")) - +fet = fet2020api(urljoin(settings.TARGET, "api/posts/"), pk="slug") +fetmember = fet2020memberapi(urljoin(settings.TARGET, "api/members/")) class SolrFet2020: def __init__(self): self.solr = pysolr.Solr( - urljoin(env("SOLR_HOST"), "/solr/core"), always_commit=True + urljoin(settings.SOLR_HOST, "/solr/core"), always_commit=True ) def reindex(self): diff --git a/solrfet2020/solr_to_objects.py b/solrfet2020/solr_to_objects.py index f3f247b..14040c0 100644 --- a/solrfet2020/solr_to_objects.py +++ b/solrfet2020/solr_to_objects.py @@ -1,18 +1,16 @@ from .utils import fet, fetmember from .utils import strip_html from urllib.parse import urljoin,urlparse -from . import env +import settings def pull_post(slug, o): - #docs = result.docs - highlights =o["highlights"] post = fet.find_one({"slug": slug}) def create_text(p): return "" + \ p["title"]+ ": "+ \ "(%s) " % p["public_date"] + \ - urljoin(env('TARGET'), + urljoin(settings.TARGET, p["url"]).rstrip("/")+" "+\ p["highlights"] @@ -23,14 +21,14 @@ def pull_post(slug, o): post["typ"] = "posts" post["highlights"]=create_highlights(o["highlights"]) post["text"] = create_text(post) - if post["url"]: post["url"]= urljoin(env('TARGET'),post["url"]).rstrip("/") - if post["imageurl"]:post["image"]=urljoin(env('TARGET'),urlparse(post["imageurl"]).path) + if post["url"]: post["url"]= urljoin(settings.TARGET,post["url"]).rstrip("/") + if post["imageurl"]:post["image"]=urljoin(settings.TARGET,urlparse(post["imageurl"]).path) return post def pull_member(id, o): member = fetmember.get(id) if not member: return None - member["url"]=urljoin(env('TARGET'), "/member/%s" % id) + member["url"]=urljoin(settings.TARGET, "/member/%s" % id) member["text"]=""+member["firstname"]+" "+member["surname"]+""+" "+member["url"] member["imageurl"]=member["image"] member["title"] =member["firstname"]+" "+member["surname"]