本文整理汇总了Python中twx.botapi.TelegramBot.get_me方法的典型用法代码示例。如果您正苦于以下问题:Python TelegramBot.get_me方法的具体用法?Python TelegramBot.get_me怎么用?Python TelegramBot.get_me使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类twx.botapi.TelegramBot
的用法示例。
在下文中一共展示了TelegramBot.get_me方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: YoutubeBot
# 需要导入模块: from twx.botapi import TelegramBot [as 别名]
# 或者: from twx.botapi.TelegramBot import get_me [as 别名]
class YoutubeBot(object):
api_token = ''
def __init__(self):
self.bot = TelegramBot(self.api_token)
self.bot.get_me()
last_updates = self.bot.get_updates(offset=0).wait()
try:
self.last_update_id = list(last_updates)[-1].update_id
except IndexError:
self.last_update_id = None
print 'last update id: {}'.format(self.last_update_id)
def process_message(self, message):
text = message.message.text
chat = message.message.chat
text = text.strip().split('&')[0]
msg = 'Could not download {}'.format(text)
print 'Got message: \33[0;32m{}\33[0m'.format(text)
try:
self.bot.send_message(chat.id, 'Staring to download')
with youtube_dl.YoutubeDL(YDL_OPTS) as ydl:
r_code = ydl.download([text])
if r_code == 0:
msg = '{} download successfully'.format(text)
except Exception:
pass
self.bot.send_message(chat.id, msg)
def run(self):
print 'Main loop started'
while True:
updates = self.bot.get_updates(
offset=self.last_update_id).wait()
try:
for update in updates:
if update.update_id > self.last_update_id:
self.last_update_id = update.update_id
self.process_message(update)
except Exception as ex:
print traceback.format_exc()
示例2: Telegram
# 需要导入模块: from twx.botapi import TelegramBot [as 别名]
# 或者: from twx.botapi.TelegramBot import get_me [as 别名]
class Telegram(object):
def __init__(self, config, interpreter):
super().__init__()
self.__interpreter = interpreter
self.__logger = logging.getLogger('telegram')
logHandler = StreamHandler()
logHandler.setLevel(logging.DEBUG)
self.__logger.addHandler(logHandler)
self.__bot = TelegramBot(config['Telegram']['token'])
self.__logger.warning("Bot details: " + str(self.__bot.get_me().wait()))
self.__updateOffset = None
def send_msg(self, telegram_id, text):
self.__bot.send_message(telegram_id, text).wait()
def getUpdates(self, dbSession):
updates = None
try:
if self.__updateOffset is not None:
updates = self.__bot.get_updates(offset=self.__updateOffset + 1).wait()
else:
updates = self.__bot.get_updates().wait()
if updates is None:
raise Exception("No updates have been received due to an error")
except:
return
for update in updates:
if hasattr(update, 'message'):
self.__logger.warning(str(update.message.sender) + ": " + update.message.text)
self.__interpreter.interpret(dbSession, self, update.message.sender, update.message.text.split(' '))
if hasattr(update, 'update_id'):
self.__updateOffset = update.update_id
def shutdown(self):
pass
示例3: NimBot
# 需要导入模块: from twx.botapi import TelegramBot [as 别名]
# 或者: from twx.botapi.TelegramBot import get_me [as 别名]
class NimBot(object):
token = config.token
def __init__(self):
self.bot = TelegramBot(self.token)
self.bot.get_me()
last_updates = self.bot.get_updates(offset=0).wait()
try:
self.last_update_id = list(last_updates)[-1].update_id
except IndexError:
self.last_update_id = None
print('last update id: {0}'.format(self.last_update_id))
def read_current_state(self, chat_id):
connection = pymysql.connect(host=config.sql_host,
user=config.sql_user,
password=config.sql_user_password,
db=config.sql_db,
charset=config.sql_charset,
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
sql = "SELECT chat_id, num1, num2, num3 FROM data WHERE chat_id = {}".format(chat_id)
cursor.execute(sql)
row = cursor.fetchone()
finally:
cursor.close()
connection.close()
return row
def write_new_user(self, chat_id, num1, num2, num3):
connection = pymysql.connect(host=config.sql_host,
user=config.sql_user,
password=config.sql_user_password,
db=config.sql_db,
charset=config.sql_charset,
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
sql = "INSERT INTO data (chat_id, num1, num2, num3) VALUES({}, {}, {}, {})".format(chat_id, num1, num2, num3)
cursor.execute(sql)
connection.commit()
finally:
cursor.close()
connection.close()
def write_current_state(self, chat_id, num1, num2, num3):
connection = pymysql.connect(host=config.sql_host,
user=config.sql_user,
password=config.sql_user_password,
db=config.sql_db,
charset=config.sql_charset,
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
sql = "UPDATE data SET num1={1}, num2={2}, num3={3} WHERE chat_id = {0}".format(chat_id, num1, num2, num3)
cursor.execute(sql)
connection.commit()
finally:
cursor.close()
connection.close()
def write_message(self, chat_id, title, username, first_name, last_name, text):
connection = pymysql.connect(host=config.sql_host,
user=config.sql_user,
password=config.sql_user_password,
db=config.sql_db,
charset=config.sql_charset,
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
sql = "INSERT INTO messages (chat_id, title, username, first_name, last_name, text) VALUES({}, '{}', '{}', '{}', '{}', '{}')".format(chat_id, title, username, first_name, last_name, text)
cursor.execute(sql)
connection.commit()
finally:
cursor.close()
connection.close()
def check_user_numbers(self, list_from_db, list_from_user):
list_from_db_work = list(list_from_db)
list_from_user_work = list(list_from_user)
for number in list_from_user:
if number in list_from_db_work:
list_from_db_work.remove(number)
list_from_user_work.remove(number)
if len(list_from_db_work)!=1 or len(list_from_user_work)!=1:
return -1
elif list_from_db_work[0] < list_from_user_work[0]:
return -2
else:
return 0
def make_a_move(self, list_from_user):
random_decision = random.randint(0,100)
if random_decision>30:
return self.make_a_move_smart(list_from_user)
elif random_decision<=30:
return self.make_a_move_random(list_from_user)
def make_a_move_random(self, list_from_user):
#.........这里部分代码省略.........
示例4: range
# 需要导入模块: from twx.botapi import TelegramBot [as 别名]
# 或者: from twx.botapi.TelegramBot import get_me [as 别名]
for i in range(1,300):
time.sleep(0.04)
bot.get_updates(i, limit=1)
print "Hello World!"
"""
Setup the bot
"""
bot = TelegramBot('172048491:AAG253i7GAR-AxQTX7bZlhlJmAPQu6n_3b0')
bot.set_webhook() # remove webhook
bot.update_bot_info().wait()
print(bot.username)
botUser = bot.get_me().wait()
print(botUser)
#updates = bot.get_updates(159).wait()
#for update in updates:
# update=update
#print("update: ", update)
#message_id = update.message.message_id;
#first_name = update.message.sender.first_name;
#print( "message_id: ", message_id)
#print( "name: ", first_name)
示例5: TGBot
# 需要导入模块: from twx.botapi import TelegramBot [as 别名]
# 或者: from twx.botapi.TelegramBot import get_me [as 别名]
class TGBot(object):
def __init__(self, token, plugins=[], no_command=None, db_url=None):
self._token = token
self.tg = TelegramBot(token)
self._last_id = None
self.cmds = {}
self.pcmds = {}
self._no_cmd = no_command
self._msgs = {}
self._plugins = plugins
if no_command is not None:
if not isinstance(no_command, TGPluginBase):
raise NotImplementedError("%s does not subclass tgbot.TGPluginBase" % type(no_command).__name__)
for p in self._plugins:
if not isinstance(p, TGPluginBase):
raise NotImplementedError("%s does not subclass tgbot.TGPluginBase" % type(p).__name__)
for cmd in p.list_commands():
if not isinstance(cmd, TGCommandBase):
raise NotImplementedError("%s does not subclass tgbot.TGCommandBase" % type(cmd).__name__)
if cmd in self.cmds or cmd in self.pcmds:
raise Exception(
"Duplicate command %s: both in %s and %s"
% (cmd.command, type(p).__name__, self.cmds.get(cmd.command) or self.pcmds.get(cmd.command))
)
if cmd.prefix:
self.pcmds[cmd.command] = cmd
else:
self.cmds[cmd.command] = cmd
if db_url is None:
self.db = connect("sqlite:///:memory:")
models.database_proxy.initialize(self.db)
self.setup_db()
else:
self.db = connect(db_url)
self.db.autorollback = True
models.database_proxy.initialize(self.db)
def update_bot_info(self):
# re-implement update_bot_info to make it synchronous
if self.tg.username is None:
self.tg._bot_user = self.tg.get_me().wait()
def process_update(self, update): # noqa not complex at all!
self.update_bot_info()
message = update.message
try:
models.User.create(
id=message.sender.id, first_name=message.sender.first_name, last_name=message.sender.last_name
)
except peewee.IntegrityError:
pass # ignore, already exists
if message.left_chat_participant is not None and message.left_chat_participant.username == self.tg.username:
models.GroupChat.delete().where(models.GroupChat.id == message.chat.id).execute()
elif isinstance(message.chat, GroupChat):
try:
models.GroupChat.create(id=message.chat.id, title=message.chat.title)
except peewee.IntegrityError:
pass
if message.new_chat_participant is not None and message.new_chat_participant != self.me:
try:
models.User.create(
id=message.new_chat_participant.id,
first_name=message.new_chat_participant.first_name,
last_name=message.new_chat_participant.last_name,
)
except peewee.IntegrityError:
pass # ignore, already exists
if message.contact is not None:
try:
models.User.create(
id=message.contact.user_id,
first_name=message.contact.first_name,
last_name=message.contact.last_name,
)
except peewee.IntegrityError:
pass # ignore, already exists
if message.text is not None and message.text.startswith("/"):
spl = message.text.find(" ")
if spl < 0:
cmd = message.text[1:]
text = ""
else:
cmd = message.text[1:spl]
text = message.text[spl + 1 :]
spl = cmd.find("@")
#.........这里部分代码省略.........
示例6: DigestBot
# 需要导入模块: from twx.botapi import TelegramBot [as 别名]
# 或者: from twx.botapi.TelegramBot import get_me [as 别名]
class DigestBot(object):
token = '146027849:AAGY5g94uLZRfURyEZrkOuh5Kvn23GnFZC4' #Super secret bot token
stack_list = []
admin = 'Pablozzz' #admin name
def __init__(self):
self.bot = TelegramBot(self.token)
self.bot.get_me()
last_updates = self.bot.get_updates(offset=0).wait()
try:
self.last_update_id = list(last_updates)[-1].update_id
except IndexError:
self.last_update_id = None
print('last update id: {0}'.format(self.last_update_id))
def process_message(self, message): #function for chech messages and send answers
text = message.message.text
chat = message.message.chat
text = text.strip()
bot_name = "zaurtox_bot"
#Substrings in messages = commands
Toxa = "/Toxa"
Zaur = "/Zaur"
News = "/News"
Help = "/Help"
Valuta = "/Valuta"
Start = "/Start"
Slogan = "/Pogovorka"
Leha = "/Leha"
Igor = "/Igor"
Pasha = "/Pasha"
Photo = "/Photo"
Sticker = "/Sticker"
Bash = "/Bash"
#logger : print susbstr if catch that in message
print('Got message: \33[0;32m{0}\33[0m from chat: {1}'.format(text, chat))
try:
# commands
#Help : print all supported commands
if Help in text:
bot_answer = 'Команды /Help /News /Zaur /Toxa /Valuta /Pogovorka /Photo /Sticker /Bash\n'
try:
self.bot.send_message(chat.id, bot_answer)
except Exception:
self.bot.send_message(chat.id, 'Unknow error. Sorry.')
#Start command it's nessesary for telegramm rules complete
if Start in text:
bot_answer = 'Это эмоциональный бот, который может помочь с новостями и комментариями к ним /Help \n'
try:
self.bot.send_message(chat.id, bot_answer)
except Exception:
self.bot.send_message(chat.id, 'Unknow error. Sorry.')
#News parse news from rbc.ru rss and send in chat
if News in text:
d = feedparser.parse('http://static.feed.rbc.ru/rbc/internal/rss.rbc.ru/rbc.ru/news.rss')
bot_answer =d['entries'][0]['title']+" "+d.entries[0]['link']
try:
self.bot.send_message(chat.id, bot_answer)
except Exception:
self.bot.send_message(chat.id, 'Unknow error. Sorry.')
#Parse currenty rate and send in chat
if Valuta in text:
speaker=["Как заявил Антон Силуанов",
"Как заявил Алексей Улюкаев",
"Как заявила Эльвира Набиулина"]
i = random.randrange(0,3,1)
sentense = speaker[i] +", обоснованным курсом рубля явлеется: "
HOST = "www.sberometer.ru"
PORT = 80
conn = http.client.HTTPConnection(HOST, PORT)
conn.request("GET", "/")
res = conn.getresponse()
data = res.read()
conn.close()
answer = str(data)
pos = answer.find("cursNow")
bot_answer= sentense + answer[(pos+11):(pos+34):1]
try:
self.bot.send_message(chat.id, bot_answer)
except Exception:
self.bot.send_message(chat.id, 'Unknow error. Sorry.')
#Parse strory from bach.org rss and print in chat
if Bash in text:
d = feedparser.parse('http://bash.im/rss/')
bot_answer =d['entries'][0]['title']+" "+d.entries[0]['link']
try:
self.bot.send_message(chat.id, bot_answer)
except Exception:
self.bot.send_message(chat.id, 'Unknow error. Sorry.')
#Select random slogan from file "pogovorki.txt" and send in chat
if Slogan in text:
fp = open("pogovorki.txt")
lines = fp.readlines()
fp.close()
phrase = ["Как говорил мой дед: ",
"Как говорят у нас в народе: ",
"Народная мудрость: ",
"Как мы все знаем: "]
#.........这里部分代码省略.........
示例7: BullsAndCowsNumbersBot
# 需要导入模块: from twx.botapi import TelegramBot [as 别名]
# 或者: from twx.botapi.TelegramBot import get_me [as 别名]
class BullsAndCowsNumbersBot(object):
token = config.token
def __init__(self):
self.bot = TelegramBot(self.token)
self.bot.get_me()
last_updates = self.bot.get_updates(offset=0).wait()
try:
self.last_update_id = list(last_updates)[-1].update_id
except IndexError:
self.last_update_id = None
print('last update id: {0}'.format(self.last_update_id))
def check_user_answer(self, text):
nums = '0123456789'
if len(text)!=4:
return False
else:
if not(text[0] in nums) or not(text[1] in nums) or not(text[2] in nums) or not(text[3] in nums):
return False
else:
return True
def answer_for_attempt(self, number_for_solve, number_attempt):
indexes_in_number_for_solve = [0, 1, 2, 3]
indexes_in_number_attempt = [0, 1, 2, 3]
number_of_bulls = 0
number_of_cows = 0
# посчитаем количество быков
i = 0
while i < 4:
if number_for_solve[i] == number_attempt[i]:
number_of_bulls = number_of_bulls + 1
indexes_in_number_for_solve.remove(i)
indexes_in_number_attempt.remove(i)
i = i + 1
# посчитаем количество коров
i = 0
while i < 4:
if i in indexes_in_number_attempt:
for j in indexes_in_number_for_solve:
if number_for_solve[j] == number_attempt[i]:
number_of_cows = number_of_cows + 1
indexes_in_number_for_solve.remove(j)
break
i = i + 1
return {'number_of_bulls': number_of_bulls, 'number_of_cows': number_of_cows}
def check_is_repeat(self, list_of_attempts, text):
for element in list_of_attempts:
if element[0] == text:
return True
return False
def process_message(self, message):
text = message.message.text
chat = message.message.chat
text = text.strip()
print('{2} Got message: \33[0;32m{0}\33[0m from chat: {1}'.format(text, chat, strftime("%Y-%m-%d %H:%M:%S", gmtime())))
try:
if text == '/start':
bot_answer = 'Это игра "Быки и коровы"\nИгра состоит в том, что я загадал число, а вам нужно его отгадать за меньшее число попыток.\n\
Чтобы прочитать правила воспользуйтесь командой /help\nИтак, я загадал число. Угадывайте'
try:
result = mariadb_connector.read_current_game_state(chat.id)
num1 = str(random.randint(0, 9))
num2 = str(random.randint(0, 9))
num3 = str(random.randint(0, 9))
num4 = str(random.randint(0, 9))
number_for_solve = ''.join([num1, num2, num3, num4])
if (result == None):
mariadb_connector.write_new_user(chat.id, number_for_solve)
else:
mariadb_connector.write_current_game_state(chat.id, number_for_solve, None)
self.bot.send_message(chat.id, bot_answer)
except Exception:
self.bot.send_message(chat.id, 'Unknow error. Sorry.')
elif text == '/help':
bot_answer = 'Это игра "Быки и Коровы"\n\
Я загадываю число из 4 цифр. Цифры могут повторяться, число может начинаться с нуля, т.е. я могу загадать даже такое число: 0103.\n\
Вам нужно отгадать число. Чем меньше попыток - тем лучше.\nДля того чтобы сделать попытку, просто напечатайте в ответ 4 цифры, например: 1234.\n\
После каждой вашей попытки я даю подсказку: количество быков и коров в вашем числе.\n\
Бык - это цифра, которая присутствует в загаданном числе и стоит на своем месте.\n\
Корова - это цифра, которая пристуствует в загаданном числе но стоит на другом месте.\n\
Т.е. например я загадал число 1234, вы отвечаете 1458: 1Б 1К (1 бык и 1 корова).\n\
Цифра 1 в вашем ответе это бык, т.к. в загаданном числе на первом месте тоже 1.\n \
Цифра 4 в вашем ответе это корова, т.к. в загаданном числе она есть, но должна стоять на четвертом месте.\n \
Цифры 5 и 8 в вашем ответе животными не являются, т.к. отсутствуют в загаданном числе.\n \
Чтобы прочитать более подробное объяснение как считаются быки и коровы, с пояснением сложных примеров, воспользуйтесь командой /rules'
try:
self.bot.send_message(chat.id, bot_answer)
except Exception:
self.bot.send_message(chat.id, 'Unknow error. Sorry.')
elif text == '/rules':
bot_answer = 'Подробнее о том как определется число быков и коров.\n\
Пример: загадано 0250, ваш ответ 0202.\n\
1) Считаем количество быков, для этого смотрим цифры вашего ответа по порядку.\n\
-первая цифра 0 - бык, т.к. в 0250 на первом месте тоже 0\n\
#.........这里部分代码省略.........