Twitter API + Bot start

This commit is contained in:
Manuel Hude
2021-05-02 10:45:01 +02:00
parent e90ae52267
commit 0a212a6a65
9 changed files with 18559 additions and 26 deletions
+10 -3
View File
@@ -3,11 +3,11 @@ from django.db import models
# Create your models here.
class User(models.Model):
...
pass
class Tweet(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
class Icon(models.Model):
image = models.ImageField(upload_to='feed_icons')
class Feed(models.Model):
@@ -17,3 +17,10 @@ class Feed(models.Model):
class FeedEntry(models.Model):
tweeted = models.BooleanField()
class Tweet(models.Model):
icon = models.ForeignKey(Icon, on_delete=models.CASCADE)
text = models.CharField(max_length=137)
date_time = models.DateTimeField()
url = models.CharField(max_length=100)
+3
View File
@@ -18,10 +18,13 @@ from django.contrib import admin
from django.urls import path
from rest_framework.routers import DefaultRouter
from app_be.views.rest_api import *
from app_be.views.twitter import *
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^api/login', LoginClass.login),
url(r'^getSixTweets', TwitterClass.getLastSixTweets),
url(r'^getTweleveTweets',TwitterClass.getLastSixTweets)
]
router = DefaultRouter()
+6
View File
@@ -50,3 +50,9 @@ class LoginClass:
return JsonResponse({}, status=401)
return JsonResponse({'user': user_sub}, safe=False, status=200)
class TwitterClass:
@staticmethod
@api_view(['GET'])
def getLastSixTweets():
return JsonResponse({[{"asdf","asdf","sdfasdf","asdf"},{"asdf","asdf","sdfasdf","asdf"}]}, safe=False, status=200)
+50
View File
@@ -0,0 +1,50 @@
import twitter
import os
import sched, time
s = sched.scheduler(time.time(), time.sleep)
from dotenv import load_dotenv
load_dotenv()
api = twitter.Api(consumer_key=os.getenv('TWITTER_API_KEY'),
consumer_secret=os.getenv('TWITTER_API_SECRET'),
access_token_key=os.getenv('TWITTER_ACCESS_TOKEN'),
access_token_secret=os.getenv('TWITTER_ACCESS_TOKEN_SECRET'))
class twitter_api:
@staticmethod
def check_credentials():
print(api.VerifyCredentials())
@staticmethod
def get_last_six_tweets():
print(api.GetUserTimeline(screen_name='WAECMG4', count=6))
@staticmethod
def get_last_twelve_tweets():
print(api.GetUserTimeline(screen_name='WAECMG4', count=12))
@staticmethod
def post_update(text, url):
update = text + ": " + url
api.PostUpdate(update)
class twitter_bot:
def scan_active_feed(self):
starttime = time.time()
while True:
# Search RSS Feed
time.sleep(60.0 - ((time.time() - starttime) % 60.0))
twitter_bot = twitter_bot()
twitter_bot.scan_active_feed()