Files
Twitter-Bot/TwitterBot.py

78 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/python
from twython import Twython, TwythonError
import random
import sys
import os
import time
import urllib
import string
import random
import filecmp
import shutil
#Pillow
import PIL
from PIL import Image, ImageDraw, ImageFont
from clarifai import rest
from clarifai.rest import ClarifaiApp
from keys import *
app = ClarifaiApp(CLIENT_ID, CLIENT_SECRET)
model = app.models.get("general-v1.3")
W = 440
#Генератор случайного пятизначного ID для ссылки imgur.com
def id_generator(size=5, chars=string.ascii_letters + string.digits):
return ''.join(random.choice(chars) for _ in range(size))
twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
#Измерение температуры RPi
cmd = '/opt/vc/bin/vcgencmd measure_temp'
line = os.popen(cmd).readline().strip()
temp = line.split('=')[1].split("'")[0]
dir = '/home/pi/TwitPiBot/'
os.chdir(dir)
def main():
shutil.copyfile(dir+'img.jpg', dir+'imgold.jpg')
while True:
id = id_generator()
#Скачиваем картинку с адреса, если скачать не удается, то картинка не перезапишется
imgFromUrl = urllib.urlopen('https://imgur.com/'+id+'.jpg')
file = open('/home/pi/TwitPiBot/img.jpg', 'r+')
file.write(imgFromUrl.read())
file.close()
Image.open(dir+'img.jpg').convert('RGB').save(dir+'img.jpg')
img = Image.open(dir+'img.jpg')
wpercent = (W/float(img.size[0]))
hsize = int((float(img.size[1])*float(wpercent)))
img = img.resize((W,hsize), PIL.Image.ANTIALIAS)
img.save(dir+'img.jpg')
#Смотрим перезаписалась ли картинка и не скачали ли мы заглушку удаленного изображения
if (filecmp.cmp(dir+'img.jpg', dir+'imgold.jpg') == False) and (filecmp.cmp(dir+'img.jpg', dir+'nla1.jpg') == False) and (filecmp.cmp(dir+'img.jpg', dir+'nla2.jpg') == False):
break
str = ''
data = app.tag_urls(['https://imgur.com/'+id+'.jpg'])
i=0
for i in range(5):
str = str+'#'+data['outputs'][0]['data']['concepts'][i]['name'].replace(" ", "")+" "
tweetimg = open(dir+'img.jpg')
twitter.update_status_with_media(status = str, media = tweetimg)
print('https://imgur.com/'+id+'.jpg '+str)
time.sleep (60*30)
if __name__ == '__main__':
while True:
#try:
main()
#except:
#pass