diff --git a/backend/app_be/media/default-icon.svg b/backend/app_be/media/default-icon.png
similarity index 100%
rename from backend/app_be/media/default-icon.svg
rename to backend/app_be/media/default-icon.png
diff --git a/backend/app_be/models.py b/backend/app_be/models.py
index 1724443..86ff2a7 100644
--- a/backend/app_be/models.py
+++ b/backend/app_be/models.py
@@ -9,7 +9,7 @@ class User(models.Model):
class Feed(models.Model):
url = models.TextField(blank=False, null=False, validators=[URLValidator(['http', 'https'])])
active = models.BooleanField()
- icon = models.FileField(upload_to='feed-icons', blank=True, null=False, default='default-icon.svg',
+ icon = models.FileField(upload_to='feed-icons', blank=True, null=False, default='default-icon.png',
validators=[FileExtensionValidator(['png', 'svg'])])
keywords = models.TextField(blank=False, null=False)
match_all_keywords = models.BooleanField(blank=True, default=False)
@@ -21,7 +21,7 @@ class FeedEntry(models.Model):
class Tweet(models.Model):
- feed = models.ForeignKey(Feed, null=True, on_delete=models.SET_NULL)
+ icon = models.FileField(blank=True, null=False, default='default-icon.png')
text = models.CharField(max_length=500)
date_time = models.DateTimeField()
url = models.CharField(max_length=500)
diff --git a/backend/app_be/views/twitter_api.py b/backend/app_be/views/twitter_api.py
index 1a3e123..a4551ce 100644
--- a/backend/app_be/views/twitter_api.py
+++ b/backend/app_be/views/twitter_api.py
@@ -4,7 +4,10 @@ from datetime import datetime
import twitter
import os
+
+from app_be.models import Tweet
from dotenv import load_dotenv
+from django.conf import settings
logger = logging.getLogger(__name__)
@@ -25,34 +28,11 @@ class twitter_api:
@staticmethod
def get_last_six_tweets():
- last_six = api.GetUserTimeline(screen_name='waecmg4',count=6,exclude_replies=True,include_rts=False)
+ last_six = api.GetUserTimeline(screen_name='waecmg4', count=6, exclude_replies=True, include_rts=False)
logger.debug("type(last_six): {}".format(type(last_six)))
response = []
- for tweet in last_six:
- logger.debug("Tweet: {}".format(tweet))
-
- parsed_date = datetime.strptime(tweet.created_at,"%a %b %d %H:%M:%S +0000 %Y")
- tweet_date = datetime.strftime(parsed_date,"%d.%m.%y %H:%M")
-
- if tweet.urls:
- twitter_url = tweet.urls[0].expanded_url
- else:
- twitter_url = "No url for tweet found"
-
- response.append({'icon': None,'text':tweet.text,'url':twitter_url,'created_date':tweet_date, 'tweet_id':tweet.id})
-
- return response
-
-
- @staticmethod
- def get_more_tweets(twitter_id):
-
- last_six = api.GetUserTimeline(screen_name='waecmg4', count=6, exclude_replies=True, include_rts=False, max_id=twitter_id)
-
- response = []
-
for tweet in last_six:
logger.debug("Tweet: {}".format(tweet))
@@ -64,8 +44,52 @@ class twitter_api:
else:
twitter_url = "No url for tweet found"
+ tmp_text = str(tweet.text)
+ end = tmp_text.find(": http")
+ tmp_text = tmp_text[0:end]
+ backend_tweet: Tweet = Tweet.objects.filter(text=tmp_text)
+
+ if not backend_tweet:
+ icon = "http://localhost:8000/media/default-icon.png"
+ else:
+ icon = "http://localhost:8000/media/feed-icons/" + os.path.basename(backend_tweet[0].icon.file.name)
+
+ response.append({'icon': icon, 'text': tweet.text, 'url': twitter_url, 'created_date': tweet_date,
+ 'tweet_id': tweet.id})
+
+ return response
+
+ @staticmethod
+ def get_more_tweets(twitter_id):
+
+ last_six = api.GetUserTimeline(screen_name='waecmg4', count=7, exclude_replies=True, include_rts=False,
+ max_id=twitter_id)
+
+ response = []
+
+ for tweet in last_six[1:]:
+ logger.debug("Tweet: {}".format(tweet))
+
+ parsed_date = datetime.strptime(tweet.created_at, "%a %b %d %H:%M:%S +0000 %Y")
+ tweet_date = datetime.strftime(parsed_date, "%d.%m.%y %H:%M")
+
+ if tweet.urls:
+ twitter_url = tweet.urls[0].expanded_url
+ else:
+ twitter_url = "No url for tweet found"
+
+ tmp_text = str(tweet.text)
+ end = tmp_text.find(": http")
+ tmp_text = tmp_text[0:end]
+ backend_tweet: Tweet = Tweet.objects.filter(text=tmp_text)
+
+ if not backend_tweet:
+ icon = "http://localhost:8000/media/default-icon.png"
+ else:
+ icon = "http://localhost:8000/media/feed-icons/" + os.path.basename(backend_tweet[0].icon.file.name)
+
response.append(
- {'icon': None, 'text': tweet.text, 'url': twitter_url, 'created_date': tweet_date,
+ {'icon': icon, 'text': tweet.text, 'url': twitter_url, 'created_date': tweet_date,
'tweet_id': tweet.id})
return response
diff --git a/backend/app_be/views/twitter_bot.py b/backend/app_be/views/twitter_bot.py
index 6ef2a87..9cbd4a8 100644
--- a/backend/app_be/views/twitter_bot.py
+++ b/backend/app_be/views/twitter_bot.py
@@ -49,7 +49,7 @@ class twitter_bot(threading.Thread):
# preparing tweet
new_tweet = Tweet()
- new_tweet.feed = feed
+ new_tweet.icon = feed.icon
new_tweet.text = current.title
if 'published' in current:
diff --git a/frontend/src/app/component/tweets/tweets.component.html b/frontend/src/app/component/tweets/tweets.component.html
index 5f8fc20..3807e70 100644
--- a/frontend/src/app/component/tweets/tweets.component.html
+++ b/frontend/src/app/component/tweets/tweets.component.html
@@ -10,22 +10,22 @@
Schau später noch einmal vorbei!
-
{{tweet.text}}
- - {{tweet.created_date}}
- {{tweet.url}}
{{tweet.text}}
+ - {{tweet.created_date}}
+ {{tweet.url}}