Км 05. Бағдарламалық жасақтаманың бағдарламалық кодын жасау он 05. 7



бет3/4
Дата06.10.2023
өлшемі37,45 Kb.
#113124
түріСабақ
1   2   3   4
Байланысты:
ОАиП 1012 03.10 (1)

import time
import json
import requests


def MainProtokol(s,ts = 'Запись'):
dt=time.strftime('%d.%m.%Y %H:%M:')+'00'


f=open('log.txt','a')
f.write(dt+';'+str(ts)+';'+str(s)+'\n')
f.close

def application(env, start_response):
try:
content=''
token='5937929205:AAHW3_J3oQTSo1fCncpoK7tu6wD6iyH-kSo'

if env['PATH_INFO'].lower() == '/tg_bot':
# тут вся механика бота именно этот код будет исполняться, когда Telegram будет вызывать webhook
wsgi_string=env['wsgi.input'].read()
x=wsgi_string.decode('UTF-8')

y=x.replace('\n',' ')


try:
json_string=json.loads(y)
except:
raise ValueError('Не удалось распарсить в JSON полученную строку')

chat_id=json_string['message']['chat']['id']
from_first_name=json_string['message']['from']['first_name'] # имя отправителя

# отправка сообщения в чат
msg='Ну, привет, '+str(from_first_name)
send_message=requests.get('https://api.telegram.org/bot'+token+'/sendMessage?&chat_id='+str(chat_id)+'&text='+str(msg))
if not send_message: raise ValueError('Не удалось отправить текст в бот')

elif env['PATH_INFO'] == '/':
# случай, когда кто-то просто из браузера зашел на сайт
MainProtokol('кто-то просто зашел на сайт')
else:
# заглушка для обработки ситуации, когда кто-то методом перебора пытается обратиться к какой-то странице сайта
raise ValueError('Вызов неизвестного URL :: '+env['PATH_INFO'])

start_response('200 OK', [('Content-Type','text/html')])
return [content.encode('utf-8')]
except Exception as S:
content=str(S)
MainProtokol(content,'Ошибка')

start_response('200 OK', [('Content-Type','text/html')])
return [content.encode('utf-8')]




Достарыңызбен бөлісу:
1   2   3   4




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет