updated to new api

This commit is contained in:
2019-05-11 11:14:42 +02:00
parent a96a8ba82c
commit 999beb6269
2 changed files with 27 additions and 12 deletions

View File

@@ -262,14 +262,15 @@ class Infomentor(object):
def get_news_list(self):
"""Fetches the list of news"""
self.logger.info("fetching news")
self._do_post(self._mim_url("News/news/GetArticleList"))
self._do_post(self._mim_url("Communication/News/GetNewsList"))
news_json = self.get_json_return()
return [str(i["id"]) for i in news_json["items"]]
return news_json['items']
def get_news_article(self, id):
def get_news_article(self, news_entry):
"""Receive all the article information"""
article_json = self.get_article(id)
storenewsdata = {k: article_json[k] for k in ("title", "content", "date")}
article_json = news_entry
storenewsdata = {k: article_json[k] for k in ("title", "content")}
storenewsdata["date"] = article_json["publishedDate"]
storenewsdata["news_id"] = article_json["id"]
storenewsdata["raw"] = json.dumps(article_json)
storenewsdata["attachments"] = []
@@ -303,7 +304,7 @@ class Infomentor(object):
"""Fetches the image to a corresponding news entry"""
self.logger.info("fetching article image: %s", id)
filename = "{}.image".format(id)
url = "News/NewsImage/GetImage?id={}".format(id)
url = "Communication/NewsImage/GetImage?id={}".format(id)
return self.download_file(url, directory="images", filename=filename)
def get_calendar(self, offset=0, weeks=1):

View File

@@ -8,6 +8,7 @@ import hashlib
import datetime
import math
import pushover
import urllib.parse
from icalendar import Event, vDate, Calendar
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
@@ -51,16 +52,17 @@ class Informer(object):
def update_news(self):
session = db.get_db()
newslist = self.im.get_news_list()
for newsid in newslist:
for news_entry in newslist:
news = (
session.query(model.News)
.filter(model.News.news_id == newsid)
.filter(model.News.news_id == news_entry['id'])
.with_parent(self.user, "news")
.one_or_none()
)
if news is not None:
self.logger.debug('Skipping news')
continue
news = self.im.get_news_article(newsid)
news = self.im.get_news_article(news_entry)
self._notify_news(news)
self.user.news.append(news)
session.commit()
@@ -86,7 +88,7 @@ class Informer(object):
for attachment in news.attachments:
fid, fname = attachment.localpath.split("/")
text += """<br>Attachment {0}: {2}/{1} <br>""".format(
fname, attachment.localpath, cfg["general"]["baseurl"]
fname, urllib.parse.quote(attachment.localpath), cfg["general"]["baseurl"]
)
parsed_date = dateparser.parse(news.date)
now = datetime.datetime.now()
@@ -170,7 +172,7 @@ class Informer(object):
for attachment in hw.attachments:
fid, fname = attachment.localpath.split("/")
text += """<br>Attachment {0}: {2}/{1}<br>""".format(
fname, attachment.localpath, cfg["general"]["baseurl"]
fname, urllib.parse.quote(attachment.localpath), cfg["general"]["baseurl"]
)
if len(text) > 900:
url = self._make_site(text)
@@ -253,7 +255,6 @@ class Informer(object):
event = Event()
event.add("uid", "infomentor_{}".format(entry["id"]))
event.add("summary", entry["title"])
event.add("description", event_details["notes"])
if not event_details["allDayEvent"]:
event.add("dtstart", dateparser.parse(entry["start"]))
event.add("dtend", dateparser.parse(entry["end"]))
@@ -261,6 +262,19 @@ class Informer(object):
event.add("dtstart", dateparser.parse(entry["start"]).date())
event.add("dtend", dateparser.parse(entry["end"]).date())
description = event_details["notes"]
self.logger.debug(event_details['info'])
self.logger.debug(type(event_details['info']))
eventinfo = event_details['info']
self.logger.debug(eventinfo)
self.logger.debug(type(eventinfo))
for res in eventinfo['resources']:
f = self.im.download_file(res["url"], directory="files")
description += """\nAttachment {0}: {2}/{1}""".format(
res['title'], urllib.parse.quote(f), cfg["general"]["baseurl"]
)
event.add("description", description)
calend.add_component(event)
new_cal_entry = calend.to_ical().replace(b"\r", b"")
new_cal_hash = hashlib.sha1(new_cal_entry).hexdigest()