updated to new api
This commit is contained in:
@@ -262,14 +262,15 @@ class Infomentor(object):
|
|||||||
def get_news_list(self):
|
def get_news_list(self):
|
||||||
"""Fetches the list of news"""
|
"""Fetches the list of news"""
|
||||||
self.logger.info("fetching 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()
|
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"""
|
"""Receive all the article information"""
|
||||||
article_json = self.get_article(id)
|
article_json = news_entry
|
||||||
storenewsdata = {k: article_json[k] for k in ("title", "content", "date")}
|
storenewsdata = {k: article_json[k] for k in ("title", "content")}
|
||||||
|
storenewsdata["date"] = article_json["publishedDate"]
|
||||||
storenewsdata["news_id"] = article_json["id"]
|
storenewsdata["news_id"] = article_json["id"]
|
||||||
storenewsdata["raw"] = json.dumps(article_json)
|
storenewsdata["raw"] = json.dumps(article_json)
|
||||||
storenewsdata["attachments"] = []
|
storenewsdata["attachments"] = []
|
||||||
@@ -303,7 +304,7 @@ class Infomentor(object):
|
|||||||
"""Fetches the image to a corresponding news entry"""
|
"""Fetches the image to a corresponding news entry"""
|
||||||
self.logger.info("fetching article image: %s", id)
|
self.logger.info("fetching article image: %s", id)
|
||||||
filename = "{}.image".format(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)
|
return self.download_file(url, directory="images", filename=filename)
|
||||||
|
|
||||||
def get_calendar(self, offset=0, weeks=1):
|
def get_calendar(self, offset=0, weeks=1):
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import hashlib
|
|||||||
import datetime
|
import datetime
|
||||||
import math
|
import math
|
||||||
import pushover
|
import pushover
|
||||||
|
import urllib.parse
|
||||||
from icalendar import Event, vDate, Calendar
|
from icalendar import Event, vDate, Calendar
|
||||||
from email.mime.multipart import MIMEMultipart
|
from email.mime.multipart import MIMEMultipart
|
||||||
from email.mime.text import MIMEText
|
from email.mime.text import MIMEText
|
||||||
@@ -51,16 +52,17 @@ class Informer(object):
|
|||||||
def update_news(self):
|
def update_news(self):
|
||||||
session = db.get_db()
|
session = db.get_db()
|
||||||
newslist = self.im.get_news_list()
|
newslist = self.im.get_news_list()
|
||||||
for newsid in newslist:
|
for news_entry in newslist:
|
||||||
news = (
|
news = (
|
||||||
session.query(model.News)
|
session.query(model.News)
|
||||||
.filter(model.News.news_id == newsid)
|
.filter(model.News.news_id == news_entry['id'])
|
||||||
.with_parent(self.user, "news")
|
.with_parent(self.user, "news")
|
||||||
.one_or_none()
|
.one_or_none()
|
||||||
)
|
)
|
||||||
if news is not None:
|
if news is not None:
|
||||||
|
self.logger.debug('Skipping news')
|
||||||
continue
|
continue
|
||||||
news = self.im.get_news_article(newsid)
|
news = self.im.get_news_article(news_entry)
|
||||||
self._notify_news(news)
|
self._notify_news(news)
|
||||||
self.user.news.append(news)
|
self.user.news.append(news)
|
||||||
session.commit()
|
session.commit()
|
||||||
@@ -86,7 +88,7 @@ class Informer(object):
|
|||||||
for attachment in news.attachments:
|
for attachment in news.attachments:
|
||||||
fid, fname = attachment.localpath.split("/")
|
fid, fname = attachment.localpath.split("/")
|
||||||
text += """<br>Attachment {0}: {2}/{1} <br>""".format(
|
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)
|
parsed_date = dateparser.parse(news.date)
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now()
|
||||||
@@ -170,7 +172,7 @@ class Informer(object):
|
|||||||
for attachment in hw.attachments:
|
for attachment in hw.attachments:
|
||||||
fid, fname = attachment.localpath.split("/")
|
fid, fname = attachment.localpath.split("/")
|
||||||
text += """<br>Attachment {0}: {2}/{1}<br>""".format(
|
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:
|
if len(text) > 900:
|
||||||
url = self._make_site(text)
|
url = self._make_site(text)
|
||||||
@@ -253,7 +255,6 @@ class Informer(object):
|
|||||||
event = Event()
|
event = Event()
|
||||||
event.add("uid", "infomentor_{}".format(entry["id"]))
|
event.add("uid", "infomentor_{}".format(entry["id"]))
|
||||||
event.add("summary", entry["title"])
|
event.add("summary", entry["title"])
|
||||||
event.add("description", event_details["notes"])
|
|
||||||
if not event_details["allDayEvent"]:
|
if not event_details["allDayEvent"]:
|
||||||
event.add("dtstart", dateparser.parse(entry["start"]))
|
event.add("dtstart", dateparser.parse(entry["start"]))
|
||||||
event.add("dtend", dateparser.parse(entry["end"]))
|
event.add("dtend", dateparser.parse(entry["end"]))
|
||||||
@@ -261,6 +262,19 @@ class Informer(object):
|
|||||||
event.add("dtstart", dateparser.parse(entry["start"]).date())
|
event.add("dtstart", dateparser.parse(entry["start"]).date())
|
||||||
event.add("dtend", dateparser.parse(entry["end"]).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)
|
calend.add_component(event)
|
||||||
new_cal_entry = calend.to_ical().replace(b"\r", b"")
|
new_cal_entry = calend.to_ical().replace(b"\r", b"")
|
||||||
new_cal_hash = hashlib.sha1(new_cal_entry).hexdigest()
|
new_cal_hash = hashlib.sha1(new_cal_entry).hexdigest()
|
||||||
|
|||||||
Reference in New Issue
Block a user