Merge pull request #2 from RandomisedName/Test_branch

Test branch
This commit is contained in:
Matvey Tarasov
2017-05-15 21:45:39 +03:00
committed by GitHub
7 changed files with 111 additions and 80 deletions

View File

@@ -1 +1,2 @@
<string> Description of error <error log>
<main.py><51>< TwythonDeprecationWarning: This method is deprecated. You should use Twython.upload_media instead>
<main.py><53><Не выводится текст в файл><>

View File

@@ -1 +1,3 @@
# TwitterShitter
Я сделал так, что в любой директории пути менять не надо. Разбил программу на файлы. Чтобы запустить бота, нужно запустить "start.py"

View File

@@ -1,78 +0,0 @@
#!/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

34
authorization.py Normal file
View File

@@ -0,0 +1,34 @@
from twython import Twython, TwythonError
import random
import sys
import os
import time
import urllib
import string
import random
import filecmp
import shutil
import check
#Pillow
#authorization in Twitter and clarifai
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")
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)

7
check.py Normal file
View File

@@ -0,0 +1,7 @@
def check_temp(): #return temp. yours Rpi
cmd = '/opt/vc/bin/vcgencmd measure_temp'
line = os.popen(cmd).readline().strip()
temp = line.split('=')[1].split("'")[0]
return temp

55
main.py Normal file
View File

@@ -0,0 +1,55 @@
from twython import Twython, TwythonError
import random
import sys
import os
import time
import urllib
import string
import random
import filecmp
import shutil
from check import *
import authorization
import PIL
from PIL import Image, ImageDraw, ImageFont
from clarifai import rest
from clarifai.rest import ClarifaiApp
log_file=open('log_file.txt','a')
dir = str(os.getcwd())+'/'
os.chdir(dir)
def main():
W = 440
shutil.copyfile(dir+'img.jpg', dir+'imgold.jpg')
while True:
id = authorization.id_generator()
imgFromUrl = urllib.urlopen('https://imgur.com/'+id+'.jpg')
file = open(str(os.getcwd())+'/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
string = ''
data = authorization.app.tag_urls(['https://imgur.com/'+id+'.jpg'])
i=0
for i in range(5):
string = string+'#'+data['outputs'][0]['data']['concepts'][i]['name'].replace(" ", "")+" "
tweetimg = open(dir+'img.jpg')
authorization.twitter.update_status_with_media(status = string, media = tweetimg)
log_file.write(str(u"https://imgur.com/'+id+'.jpg '+string+'\n"))
time.sleep (60*30)

10
start.py Normal file
View File

@@ -0,0 +1,10 @@
import main
#script for the start
if __name__ == '__main__':
while True:
#try:
main.main()
#except:
#pass