Twitter API + Bot start
This commit is contained in:
@@ -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)
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
@@ -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()
|
||||
Reference in New Issue
Block a user