From 13e5aa06b10ee4eccaea047f7e1b9c19686314ca Mon Sep 17 00:00:00 2001 From: Matvey Tarasov Date: Mon, 15 May 2017 16:35:47 +0300 Subject: [PATCH 01/13] Rename Error List to Error_List --- Error List => Error_List | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Error List => Error_List (100%) diff --git a/Error List b/Error_List similarity index 100% rename from Error List rename to Error_List From 479c3da6ff4ae79574c442b1cc028a426782b045 Mon Sep 17 00:00:00 2001 From: RandomisedName Date: Mon, 15 May 2017 17:07:07 +0300 Subject: [PATCH 02/13] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80?= =?UTF-8?q?=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TwitterBot.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/TwitterBot.py b/TwitterBot.py index 3ce174f..7abc7c8 100644 --- a/TwitterBot.py +++ b/TwitterBot.py @@ -9,6 +9,8 @@ import string import random import filecmp import shutil + +#Pillow import PIL from PIL import Image, ImageDraw, ImageFont @@ -22,11 +24,13 @@ 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] @@ -38,6 +42,7 @@ 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()) @@ -48,6 +53,7 @@ def main(): 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 @@ -68,4 +74,4 @@ if __name__ == '__main__': main() #except: - #pass \ No newline at end of file + #pass From 3b42600600d70aa8587ce7c132f7c4514d2ce8be Mon Sep 17 00:00:00 2001 From: RandomisedName Date: Mon, 15 May 2017 17:27:23 +0300 Subject: [PATCH 03/13] Update TwitterBot.py --- TwitterBot.py | 1 + 1 file changed, 1 insertion(+) diff --git a/TwitterBot.py b/TwitterBot.py index 7abc7c8..147e986 100644 --- a/TwitterBot.py +++ b/TwitterBot.py @@ -22,6 +22,7 @@ from keys import * app = ClarifaiApp(CLIENT_ID, CLIENT_SECRET) model = app.models.get("general-v1.3") +#Максимальная ширина картинки принимаемая твиттером W = 440 #Генератор случайного пятизначного ID для ссылки imgur.com From 6bf29e1e5c90d0c559b1dd1203c5c464902d0e23 Mon Sep 17 00:00:00 2001 From: Matvey Tarasov Date: Mon, 15 May 2017 20:52:58 +0300 Subject: [PATCH 04/13] Add files via upload --- Error_List | 3 ++- authorization.py | 34 ++++++++++++++++++++++++++++++ check.py | 7 ++++++ main.py | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ start.py | 10 +++++++++ 5 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 authorization.py create mode 100644 check.py create mode 100644 main.py create mode 100644 start.py diff --git a/Error_List b/Error_List index 5cb6dfe..38957c8 100644 --- a/Error_List +++ b/Error_List @@ -1 +1,2 @@ - Description of error +<51>< TwythonDeprecationWarning: This method is deprecated. You should use Twython.upload_media instead> +<53><Не выводится текст в файл><> diff --git a/authorization.py b/authorization.py new file mode 100644 index 0000000..7a751e1 --- /dev/null +++ b/authorization.py @@ -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) + + + diff --git a/check.py b/check.py new file mode 100644 index 0000000..f774aa0 --- /dev/null +++ b/check.py @@ -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 + diff --git a/main.py b/main.py new file mode 100644 index 0000000..93acd5f --- /dev/null +++ b/main.py @@ -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('/home/kokosso/Python/TwitterShitter/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) \ No newline at end of file diff --git a/start.py b/start.py new file mode 100644 index 0000000..6a43682 --- /dev/null +++ b/start.py @@ -0,0 +1,10 @@ +import main +#script for the start + +if __name__ == '__main__': + while True: + #try: + main.main() + + #except: + #pass From 5e35411af36fe7bb437557fcdf3477b17ae166f3 Mon Sep 17 00:00:00 2001 From: Matvey Tarasov Date: Mon, 15 May 2017 20:55:16 +0300 Subject: [PATCH 05/13] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f8d9f8f..a95f8d4 100644 --- a/README.md +++ b/README.md @@ -1 +1,2 @@ -# TwitterShitter \ No newline at end of file +# TwitterShitter +Я сделал так, что в любой директории пути менять не надо. Разбил программу на файлы From 26f0180fd609851dbb8b336a463730fa6830d34d Mon Sep 17 00:00:00 2001 From: Matvey Tarasov Date: Mon, 15 May 2017 20:55:50 +0300 Subject: [PATCH 06/13] Add files via upload --- main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.py b/main.py index 93acd5f..2b00f2d 100644 --- a/main.py +++ b/main.py @@ -31,7 +31,7 @@ def main(): id = authorization.id_generator() imgFromUrl = urllib.urlopen('https://imgur.com/'+id+'.jpg') - file = open('/home/kokosso/Python/TwitterShitter/img.jpg', 'r+') + 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') From dd662ff73aac428d3f830dfd7a09706f563f57e5 Mon Sep 17 00:00:00 2001 From: Matvey Tarasov Date: Mon, 15 May 2017 20:57:45 +0300 Subject: [PATCH 07/13] Add files via upload --- main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.py b/main.py index 2b00f2d..6fd1721 100644 --- a/main.py +++ b/main.py @@ -31,7 +31,7 @@ def main(): id = authorization.id_generator() imgFromUrl = urllib.urlopen('https://imgur.com/'+id+'.jpg') - file = open(str(os.getcwd())'/img.jpg', 'r+') + 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') From faa67c7361d266ee3b0ecac1f272a406003afd7e Mon Sep 17 00:00:00 2001 From: Matvey Tarasov Date: Mon, 15 May 2017 20:58:40 +0300 Subject: [PATCH 08/13] Delete TwitterBot.py --- TwitterBot.py | 78 --------------------------------------------------- 1 file changed, 78 deletions(-) delete mode 100644 TwitterBot.py diff --git a/TwitterBot.py b/TwitterBot.py deleted file mode 100644 index 147e986..0000000 --- a/TwitterBot.py +++ /dev/null @@ -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 From dd4a6beb45004334cb26c995f8dca1986f1aa705 Mon Sep 17 00:00:00 2001 From: Matvey Tarasov Date: Mon, 15 May 2017 20:59:28 +0300 Subject: [PATCH 09/13] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a95f8d4..afcb551 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ # TwitterShitter -Я сделал так, что в любой директории пути менять не надо. Разбил программу на файлы +Я сделал так, что в любой директории пути менять не надо. Разбил программу на файлы. Чтобы запустить бота, нужно запустить "start.py" + From 2977090ec9d413f973b78a7ad4521c2affea3264 Mon Sep 17 00:00:00 2001 From: Matvey Tarasov Date: Mon, 15 May 2017 21:46:34 +0300 Subject: [PATCH 10/13] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index afcb551..20148c1 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,2 @@ # TwitterShitter -Я сделал так, что в любой директории пути менять не надо. Разбил программу на файлы. Чтобы запустить бота, нужно запустить "start.py" From c70b6f1b6db559991dc9228df31d4b1436e4b581 Mon Sep 17 00:00:00 2001 From: Matvey Tarasov Date: Mon, 15 May 2017 22:48:29 +0300 Subject: [PATCH 11/13] Create control.py --- control.py | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 control.py diff --git a/control.py b/control.py new file mode 100644 index 0000000..027baa1 --- /dev/null +++ b/control.py @@ -0,0 +1,2 @@ + +#This script for control bot by other twitt_acc From 9c3824cedeb4703c65e1268a0306a3de9fcbdb6d Mon Sep 17 00:00:00 2001 From: RandomisedName Date: Tue, 16 May 2017 01:54:33 +0300 Subject: [PATCH 12/13] Cleaned the code up Spacing mostly and unnecesarry comments --- authorization.py | 11 +---------- check.py | 4 +--- main.py | 4 +--- start.py | 2 +- 4 files changed, 4 insertions(+), 17 deletions(-) diff --git a/authorization.py b/authorization.py index 7a751e1..77019f5 100644 --- a/authorization.py +++ b/authorization.py @@ -10,10 +10,6 @@ import filecmp import shutil import check - - -#Pillow - #authorization in Twitter and clarifai from clarifai import rest from clarifai.rest import ClarifaiApp @@ -23,12 +19,7 @@ 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) - - - +twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET) \ No newline at end of file diff --git a/check.py b/check.py index f774aa0..a7e723b 100644 --- a/check.py +++ b/check.py @@ -1,7 +1,5 @@ - 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 - + return temp \ No newline at end of file diff --git a/main.py b/main.py index 6fd1721..b37bef8 100644 --- a/main.py +++ b/main.py @@ -1,4 +1,3 @@ - from twython import Twython, TwythonError import random import sys @@ -12,14 +11,13 @@ 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') +log_file=open('log_file.txt','a') dir = str(os.getcwd())+'/' os.chdir(dir) diff --git a/start.py b/start.py index 6a43682..ac764d0 100644 --- a/start.py +++ b/start.py @@ -7,4 +7,4 @@ if __name__ == '__main__': main.main() #except: - #pass + #pass \ No newline at end of file From b5b3720ee1714a6df9a29ab9ac872a5761a18415 Mon Sep 17 00:00:00 2001 From: RandomisedName Date: Tue, 16 May 2017 13:44:21 +0300 Subject: [PATCH 13/13] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BB=D0=BE=D0=B3=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Вернул логи в консоль, и теперь файл открывается перед каждой записью и закрывается после нее, для обновления в реальном времени. --- main.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index b37bef8..0fbe9dc 100644 --- a/main.py +++ b/main.py @@ -17,8 +17,6 @@ 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) @@ -48,6 +46,11 @@ def main(): 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")) + + log_str = "https://imgur.com/"+id+".jpg "+string+"\n" + log_file=open('log_file.txt', 'a') + log_file.write(log_str) + log_file.close() + print log_str, time.sleep (60*30) \ No newline at end of file