mirror of
https://github.com/anatolykopyl/Twitter-Bot.git
synced 2026-03-26 12:54:49 +00:00
@@ -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><Не выводится текст в файл><>
|
||||||
|
|||||||
@@ -1 +1,3 @@
|
|||||||
# TwitterShitter
|
# TwitterShitter
|
||||||
|
Я сделал так, что в любой директории пути менять не надо. Разбил программу на файлы. Чтобы запустить бота, нужно запустить "start.py"
|
||||||
|
|
||||||
|
|||||||
@@ -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
34
authorization.py
Normal 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
7
check.py
Normal 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
55
main.py
Normal 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)
|
||||||
Reference in New Issue
Block a user