twitter bot ctd.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
from django.contrib import admin
|
||||
from app_be.models import Tweet
|
||||
from app_be.models import Tweet, Feed
|
||||
|
||||
# Register your models here.
|
||||
admin.site.register(Tweet)
|
||||
admin.site.register(Tweet)
|
||||
admin.site.register(Feed)
|
||||
@@ -1,3 +1,5 @@
|
||||
import sys
|
||||
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
@@ -6,7 +8,8 @@ class AppBeConfig(AppConfig):
|
||||
|
||||
def ready(self):
|
||||
|
||||
from app_be.views.twitter_bot import twitter_bot
|
||||
twitter_bot1 = twitter_bot()
|
||||
twitter_bot1.start()
|
||||
print("bot started")
|
||||
if 'runserver' in sys.argv:
|
||||
from app_be.views.twitter_bot import twitter_bot
|
||||
twitter_bot1 = twitter_bot()
|
||||
twitter_bot1.start()
|
||||
print("bot started")
|
||||
@@ -2,8 +2,9 @@ import threading
|
||||
from datetime import datetime
|
||||
import time
|
||||
|
||||
from app_be.models import Tweet
|
||||
from app_be.models import Tweet, Feed
|
||||
from app_be.views.twitter_api import twitter_api
|
||||
from feedsearch import search
|
||||
|
||||
|
||||
class twitter_bot(threading.Thread):
|
||||
@@ -12,21 +13,48 @@ class twitter_bot(threading.Thread):
|
||||
threading.Thread.__init__(self)
|
||||
|
||||
def run(self):
|
||||
|
||||
posted = False
|
||||
|
||||
while True:
|
||||
# Search RSS Feeds TODO: for looping over feeds
|
||||
|
||||
print("Looking for new results in active feeds")
|
||||
feed_set = Feed.objects.filter(active=True)
|
||||
|
||||
new_tweet = Tweet()
|
||||
new_tweet.icon = None
|
||||
new_tweet.text = "Test 2"
|
||||
new_tweet.date_time = datetime.now()
|
||||
new_tweet.url = "www.google.com"
|
||||
for feed in feed_set:
|
||||
if posted:
|
||||
break
|
||||
|
||||
# if tweet not in db yet
|
||||
if Tweet.objects.filter(text=new_tweet.text) == []:
|
||||
# call twitter api to post tweet and store to db
|
||||
print("Posting update on Twitter")
|
||||
twitter_api.post_update(new_tweet.text, new_tweet.url)
|
||||
new_tweet.save()
|
||||
#load feed
|
||||
feeds = search(feed.url)
|
||||
|
||||
#search single posts
|
||||
for current in feeds:
|
||||
print(current)
|
||||
|
||||
#TODO: split keywords and search
|
||||
#looking for keywords
|
||||
if feed.keywords in current.title:
|
||||
if posted:
|
||||
break
|
||||
|
||||
#preparing tweet
|
||||
new_tweet = Tweet()
|
||||
new_tweet.icon = None
|
||||
new_tweet.text = current.title
|
||||
new_tweet.date_time = datetime.now()
|
||||
new_tweet.url = current.url
|
||||
|
||||
# if tweet not in db yet
|
||||
if not Tweet.objects.filter(text=new_tweet.text):
|
||||
# call twitter api to post tweet and store to db
|
||||
print("Posting update on Twitter")
|
||||
print(new_tweet)
|
||||
|
||||
#TODO: uncomment
|
||||
#twitter_api.post_update(new_tweet.text, new_tweet.url)
|
||||
new_tweet.save()
|
||||
posted = True
|
||||
|
||||
time.sleep(60)
|
||||
posted = False
|
||||
|
||||
Reference in New Issue
Block a user