diff --git a/infomentor/connector.py b/infomentor/connector.py
index f702fec..10a0988 100644
--- a/infomentor/connector.py
+++ b/infomentor/connector.py
@@ -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):
diff --git a/infomentor/informer.py b/infomentor/informer.py
index 0a7efb3..5de2fa4 100755
--- a/infomentor/informer.py
+++ b/infomentor/informer.py
@@ -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 += """
Attachment {0}: {2}/{1}
""".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 += """
Attachment {0}: {2}/{1}
""".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()