Форум сайта python.su
import telebot import sqlite3 from telebot import types token = "" bot = telebot.TeleBot(token=token) admins = 11111111 conn = sqlite3.connect('kofetoria.db', check_same_thread=False) cursor = conn.cursor() def db_table_val(user_id: int, username: str): cursor.execute('INSERT OR IGNORE INTO test (user_id, username) VALUES (?, ?)', (user_id, username)) conn.commit() @bot.message_handler(commands=["start"]) def repeat_all_messages(message): # создаем клавиатуру keyboard = types.InlineKeyboardMarkup() # добавляем на нее две кнопки button1 = types.InlineKeyboardButton(text="сделать заказ", callback_data="button1") keyboard.add(button1) if message.chat.id == admins: button2 = types.InlineKeyboardButton(text="помощь для бариста", callback_data="button2") keyboard.add(button2) # отправляем сообщение пользователю bot.send_message(message.chat.id, "Нажмите кнопку!", reply_markup=keyboard) us_id = message.from_user.id #adm = message.from_user.admin username = message.from_user.username db_table_val(user_id=us_id, username=username) # функция запустится, когда пользователь нажмет на кнопку @bot.callback_query_handler(func=lambda call: True) def callback_inline(call): if call.message: if call.data == "button1": bot.send_message(call.message.chat.id, "В разработке") #@bot.callback_query_handler(func=lambda call: True) #def callback_inline(call): if call.data == "button2": keyboard = types.InlineKeyboardMarkup() button2 = types.InlineKeyboardButton(text="huy", callback_data="button2") keyboard.add(button2) bot.send_message(call.message.chat.id, "Вы нажали на вторую кнопку.") bot.polling(none_stop=True)
class GostTable(tables.Table): class Meta: model = Gost template_name = "django_tables2/bootstrap.html" fields = ('name', 'short_name')
<form action="/upload" method="post" enctype="multipart/form-data"> <label for="pdfformmail{{indexfile}}">Загрузить</label> <input enctype type="file" onChange=selectFile(this) name="pdfformmail" id="pdfformmail{{indexfile}}"> </form>
from fastapi import FastAPI, Request,UploadFile, File import webbrowser ..... @app.post("/upload") def upload_file(file: UploadFile): return file
RuntimeError: Form data requires “python-multipart” to be installed.
You can install “python-multipart” with:
pip install python-multipart
……
pydantic_core 2.6.3
pyinstaller 6.0.0
pyinstaller-hooks-contrib 2023.9
python-multipart 0.0.6
setuptools 68.2.2
sniffio 1.3.0
starlette 0.27.0
…….
class Strana(models.Model): # 1 модель name_s = models.CharField('Наименование', max_length=70) def get_absolute_url(self): return reverse('spr_strana') def get_UpdateUrl(self): return reverse('update_str_strana',kwargs={'pk':self.pk}) def get_DeleteUrl(self): return reverse('delete_str_strana',kwargs={'pk':self.pk}) class Gorod(models.Model): #2 модель id_strana=models.ForeignKey(Strana, on_delete=models.CASCADE) name_g = models.CharField('Наименование', max_length=70)
import re import socket from ipaddress import ip_network, ip_address import dns from colorama import Fore from colorama import init from dns import resolver from requests import get, exceptions import pyfiglet shrft = pyfiglet.figlet_format("DNS-Scan-blacklist") print(shrft) init() # проверка адреса в диапазоне cloudflare def ip_in_range(ip, addr): if ip_address(ip) in ip_network(addr): return True return False # загрузка списка диапазонов адресов cloudflare # запуск функции проверки ip-адреса def cloudf_detect(ip): list_addr = ["104.16.0.0/12"] url = 'https://www.cloudflare.com/ips-v4' req = get(url=url) for adr in req.text.split("\n"): list_addr.append(adr) for addr in list_addr: detect = ip_in_range(ip, addr) if detect: return True return False # получение внешнего ip-адреса компьютера def public_ip(): try: return get('https://api.ipify.org/').text except exceptions.ConnectionError: return '127.0.0.1' # загрузка списка DNSBL, получение информации о наличии адреса в списках def dns_bl_check(ip): print(Fore.YELLOW + '\n- Проверка черных списков\n') bad_dict = dict() req = get('https://raw.githubusercontent.com/evgenycc/DNSBL-list/main/DNSBL') read = req.text.splitlines() for serv in read: req = f"{'.'.join(reversed(ip.split('.')))}.{serv.strip()}" try: resolv = dns.resolver.Resolver() resolv.timeout = 5 resolv.lifetime = 5 resp = resolv.resolve(req, 'A') resp_txt = resolv.resolve(req, 'TXT') print(Fore.RED + f'{serv.strip():30}: [BAD]') pattern = '(?:https?:\/\/)?(?:[\w\.]+)\.(?:[a-z]{2,6}\.?)(?:\/[\w\.]*)*\/?' find = re.findall(pattern, str(resp_txt[0])) if len(find) == 0: find = ['No address'] bad_dict.update({serv.strip(): f'{resp[0]} {find[0]}'}) except dns.resolver.NXDOMAIN: print(Fore.GREEN + f'{serv.strip():30}: [OK]') except (dns.resolver.LifetimeTimeout, dns.resolver.NoAnswer): continue if len(bad_dict) > 0: len_str = len(f'IP-АДРЕС: "{ip.upper()}" ОБНАРУЖЕН В ЧЕРНЫХ СПИСКАХ') print(Fore.BLUE + f'\nIP-АДРЕС: {ip.upper()} ОБНАРУЖЕН В ЧЕРНЫХ СПИСКАХ\n{"*"*len_str}') for bad in bad_dict: print(f' - {Fore.YELLOW + bad:30} : {Fore.RESET +bad_dict[bad]}') else: print(Fore.GREEN + '\n[+] IP-адрес в черных списках не обнаружен') # получение пользовательского ввода # запуск проверки на принадлежность адреса к cloudflare # запуск проверки адреса в DNSBL def main(): print(Fore.CYAN + f'\n- Ваш внешний IP-адрес: {public_ip()}') addr_input = input('- Введите IP-адрес или домен для проверки\n Для выхода введите "x"\n >>> ') if addr_input.lower() == "x": exit(0) ip = '' try: ip = socket.gethostbyname(addr_input) except socket.gaierror: print(Fore.RED + '\n - Не удалось получить IP-адрес') exit(0) if cloudf_detect(ip): print(Fore.RED + f'\n[!] ВНИМАНИЕ! Обнаружен адрес Cloudflare: {ip}') dns_bl_check(ip) if __name__ == "__main__": main()