
Igor
19.01.2016
13:05:42
def photoSend(data, api):
try:
id=photoData[data["message_text"]]
print(photoData[data["message_text"]])
vkRequest = vk.photos.get(owner_id=-8109175, album_id=str(id))
photoList = choice(vkRequest['items'])
photoSize=max(int(k.split('_')[1]) for k in photoList.keys() if 'photo' in k)
sendPhotoFromVK = photoList["photo_"+str(photoSize)]
api.sendPhotoUrl(data["chat_id"], sendPhotoFromVK, data["message_id"])
except:
pass
Такое вы от меня хотели?

Igor
19.01.2016
13:07:30
теперь кэширования.
#-*-coding:UTF-8-*-
from app.reqBot import Bot
from json import loads, dump
from random import choice
from os import listdir
import vk_api
import pickle as cPickle
global zonaHumor, wordBot, vk
vk = vk_api.VkApi().get_api()
botMode=0
bot = Bot(name="S.T.A.L.K.E.R.", token="124678862:AAFEOZXxv4")
urlPhotoGroup=["85291460", "8109175", "38635106", "17035846", "96812503", "23289884", "57579356", "92212978", "42278444"]
photoData={
"/zona_wallpaper":"84047762",
"/zona_avatar":"151669801",
"/zona_cosplay":"217797477",
"/zona_bugs":"136309850",
"/zona_screen":"178209537",
"/zona_fanart":"97770808"
}
openFile = open("words.json", 'r')
wordBot = loads(openFile.read())
openFile.close()
openFile = open("zonaHumor.json", 'r')
humorBot = loads(openFile.read())
openFile.close()
def memoized(func):
memory = {}
def memo(*args,**kwargs):
hash = cPickle.dumps((args, sorted(kwargs.iteritems())))
if hash not in memory:
memory[hash] = func(*args,**kwargs)
return memory[hash]
return memo
def start(data, api):
if data["message_text"] == "/start":
api.sendMessage(data["chat_id"], "Привет.\r\nЯ Маслина-Бот. Если ты любитель серии игр S.T.A.L.K.E.R. то я незаменим.\r\nЯ уже кое чего умею, например фотки об сталкере кидать.Или рассказать анекдот про сталкер.\r\nНу, удачи тебе сталкер!")
def about(data, api):
if data["message_text"] == "/about":
api.sendMessage(data["chat_id"], "Мой хозяин - @SymbiSoft\r\nСсылка на него - telegram.me/symbisoft\r\nМое имя в Телеграме - @maslina_bot\r\nА вдруг кому-то захочеш дать мою ссылку то вот - telegram.me/maslina_bot\r\nСпасибо за помощь Nikita aka @nsychev Sychev\r\nВерсия моей прошивки - 0.6 Open Beta Test\r\nОснован на модуле от @nauma, по имени TelegramBotStarter.\r\nЧто то он долго музыку шлет, почему - ¯\_(ツ)_/¯")
def radiationZone(data, api):
if data["message_text"] == "/radiation_zone":
api.sendPhotoUrl(data["chat_id"], "http://www.chernobyl-tour.com/uploads/inform_rad_v3.jpg", data["message_id"])
def zonaHumor(data, api):
if data["message_text"] == "/zona_humor":
numberJoke=choice(humorBot)
api.sendMessage(data["chat_id"], numberJoke)
@memoized
def photoZone(data, api):
if data["message_text"] == "/photo_zone":
photoURLGroup =choice(urlPhotoGroup)
vkRequest = vk.photos.get(owner_id="-"+photoURLGroup, album_id="wall")
photoList = choice(vkRequest['items'])
photoSize=max(int(k.split('_')[1]) for k in photoList.keys() if 'photo' in k)
sendPhotoFromVK = photoList["photo_"+str(photoSize)]
api.sendPhotoUrl(data["chat_id"], sendPhotoFromVK, data["message_id"])
@memoized
def photoSend(data, api):
try:
id=photoData[data["message_text"]]
print(photoData[data["message_text"]])
vkRequest = vk.photos.get(owner_id=-8109175, album_id=str(id))
photoList = choice(vkRequest['items'])
photoSize=max(int(k.split('_')[1]) for k in photoList.keys() if 'photo' in k)
sendPhotoFromVK = photoList["photo_"+str(photoSize)]
api.sendPhotoUrl(data["chat_id"], sendPhotoFromVK, data["message_id"])
except KeyError:
print(KeyError)
def music(data, api):
if data["message_text"] == "/zona_music":
listMusic = listdir("Music/")
listMusicRandom = choice(listMusic)
api.sendAudio(data["chat_id"], "Music/{0}".format(listMusicRandom))
def floodMode(data, api):
global botMode
if "/flood_mode" in data["message_text"] and data["user_id"] == 120063211:
botMode = 1
api.sendMessage(data["chat_id"], "Режим флуда включен")
elif "/normal_mode" in data["message_text"] and data["user_id"] == 120063211:
botMode = 0
api.sendMessage(data["chat_id"], "Режим флуда выключен")
elif botMode == 1:
wordBotSend= choice(wordBot)
api.sendMessage(data["chat_id"], wordBotSend)
bot.include(start, about, radiationZone, zonaHumor, photoZone, photoSend, music, floodMode)
bot.start(pause=1)
так кэширования?)