mb0nd / wg_admin_bot

26 stars 5 forks source link

Развитие? #1

Closed DigneZzZ closed 5 months ago

DigneZzZ commented 1 year ago

Привет! Спасибо за интересный проект. Отправка массово всем пользователем уведомления об оплате - это прям глобально) Смог бы реализовать дату начала и период аренды по пользователям? и отправку уведомления об оплате, например, за 1 день?

mb0nd commented 1 year ago

Привет, спасибо за интерес к проекту) Оповещалка об оплате стала больше как заглушка, когда я уперся в то, что для подключение платежной системы нужно юр. лицо. По сути просто для того что бы напомнить тем, кто договаривался скинуться на VDS, что пора закинуть денег. То о чем ты просишь вполне возможно реализовать, только не понятен процесс фиксирования момента оплаты... Как вариант можно на нового юзера вешать блок пока админ не тыкнет в кнопку, что пользователь оплатил и от этого момента пойдет отсчет, но следить за каждым идентифицировать и протыкивать кнопки такое себе решение.. С нормальной системой оплаты можно было бы чекать статус и сделать все автоматически, но причины почему так не сделал описал выше. Если есть идеи как это сделать лучше - вэлкам, то что описал я ну объективно криво и мне не нужно, если этот запрос будет более востребован, то допишу без проблем, но в текущих обстоятельствах не вижу смысла.

SergeyKombi commented 1 year ago

Доброго времени суток. Проект очень заинтересовал. Все установил, настроил по инструкции, но при запуске скрипта выдает ошибку. Никак не могу понять что не так. Прикладываю файл скрипта и собственно текст ошибки. Прошу помощи, чтобы разобраться и запустить бота. Заранее спасибо. Файл скрипта: 2023-06-19_22-01-00+ Там где подчеркнуто красным после @ должно быть localhost/имя_БД или имя_БД/POSTGRES_USER Текст ошибки: 2023-06-19_22-01-32+

mb0nd commented 1 year ago

Доброго времени суток. Спасибо за интерес к проекту! Да из ошибки видно, что pydantic не нравится формат pg_url, там должно быть первое из ваших предположений, а именно @"имя или адрес сервера" (если сервер БД тот же, то localhost)/"имя базы данных". Что бы совсем стало понятно, рекомендую ознакомиться с документацией, там подробно описан формат подключения к БД https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.asyncpg

SergeyKombi commented 1 year ago

Спасибо за быстрый ответ. Пробовал и @localhost/имя_БД и имя_БД/POSTGRES_USER, текст ошибки не меняется. У меня появилось подозрение, что не создалась база на которую я ссылаюсь, буду проверять.

mb0nd commented 1 year ago

Если есть сложности с развертыванием БД, используйте вариант с докером, все упаковано, только прописать переменные и запустить.

SergeyKombi commented 1 year ago

Спасибо большое за рекомендации. Буду пробовать. Правда с докером ни разу не работал.

SergeyKombi commented 1 year ago

Базу победил, но теперь при запуске скрипта другая ошибка. Если можешь, подскажи пожалуйста. 2023-06-20_00-29-24+

Я упускаю какую-то мелочь. Не могу понять какую.

mb0nd commented 1 year ago

Похоже, что не может обработать новый синтаксис тайпхинтов, проверь версию питона, похоже она ниже 3.10, а лучше все же использовать докер где все зависимости и версии упакованы, поверь это проще чем кажется)

dnikolaev36 commented 1 year ago

@mb0nd, привет! :) Очень рад, что ты запилил такой классный проект. Сейчас вот запустил на другом VPS-сервере (на старом повысили абон. плату, пришлось съехать) и столкнулся с некоторыми небольшими проблемами.

Итак, мои личные пожелания к README:

И ещё один нюанс. На сколько я понял, имя файла .conf = имя юзера в Telegram. Клиент Wireguard на Android поддерживает максимум 15 символов в названии интерфейса (ну то есть вот этой сущности, напротив которой потом появляется переключатель для активации VPN-подключения). Хз как на других клиентах, пока не проверял. У одного из юзеров имя в телеге >15 символов, и когда он пытается импортировать conf-файл в клиент, то программка орёт "Невозможно импортировать туннель". Докопался до этого, когда уже вручную начал создавать подключение. В общем, рекомендую прикрутить некую проверку длины имени при создании файла conf. и в случае превышения 15 обрезать его.

Удачи тебе с данным проектом! Надеюсь, ты его не забросишь и будешь развивать дальше :)

mb0nd commented 1 year ago

@dnikolaev36 привет! Спасибо за теплые слова и интерес к проекту! Учел твои пожелания, исправил в последнем коммите, можно уже сделать git pull и перезапустить бота. В остальном, глобальных изменений пока не планируется, жду релиза aiogram, тогда попробую переписать все под релизную версию. По мере необходимости буду обновлять зависимости и исправлять всплывающие баги, как тот что ты описал)

AlKarmik commented 11 months ago

привет, застрял с докером. получаю ошибку что невозможно авторизироватся к бд ибо не правильный пасс. тыкни носом плиз как там базу создать. моими силами я упираюсь в невозможность что либо сделать с контейнером и ошибку psql: error: FATAL: role "root" does not exist Спасибо за совет

mb0nd commented 11 months ago

Привет, база в докере создастся автоматически при корректном заполнении переменных окружения.

db:

image: postgres:13-alpine
container_name: wg_database
restart: "unless-stopped"
environment:
  POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
  POSTGRES_USER: ${POSTGRES_USER}
volumes:
  - "pgdata:/var/lib/postgresql/data"

Роли root там не существует по дефолту, там создастся роль с именем которое ты указываешь в POSTGRES_USER и в соответствии создастся БД с тем же именем.

AlKarmik commented 11 months ago

Ещё раз привет. Прости за то что я такой тупенький, на чистую развернул (сервер на Убунте 20.04), ни шаг в лево, ни шаг в право. Вписал всё как надо по инструкции, получаю такое и не старт бота( image

mb0nd commented 11 months ago

"postgresql+asyncpg://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db/${POSTGRES_USER}" в этой строке поменяй заглушки на значения в файле .env, убунта почему то не считает их за переменные внутри файла. Что то вроде "postgresql+asyncpg://superadmin:SuPerSecret@db/superadmin" Ну естественно на те что ты указывал выше...

AlKarmik commented 11 months ago

"postgresql+asyncpg://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db/${POSTGRES_USER}" у цьому рядку змінює заглушки на значення у файлі .env, чому убунта не вважає їх за змінні всередині файлу. Що то вроде "postgresql+asyncpg://superadmin:SuPerSecret@db/superadmin" Ну природно на те, що ти вказав вище...

Спасибо большое, помогло! прежняя ошибка пропала. но вылезла новая( image

mb0nd commented 11 months ago

Судя по всему ты менял параметры БД после первых попыток, и там уже могла инициализироваться базы с другими параметрами, попробуй очистить папку /opt/pg_data и развернуть с чистого листа. Возможно дело в другом, трейс ошибки не полный тут можно только гадать...