mirror of
https://github.com/dizedev/vk_lp.git
synced 2026-09-17 05:09:00 +00:00
+1
-1
@@ -172,7 +172,7 @@ cython_debug/
|
|||||||
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
||||||
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||||
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||||
#.idea/
|
.idea/
|
||||||
|
|
||||||
### PyCharm+all template
|
### PyCharm+all template
|
||||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||||
|
|||||||
Generated
-7
@@ -1,7 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="Black">
|
|
||||||
<option name="sdkName" value="Python 3.9 (dizevk_lp)" />
|
|
||||||
</component>
|
|
||||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (dizevk_lp)" project-jdk-type="Python SDK" />
|
|
||||||
</project>
|
|
||||||
Generated
-6
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
@@ -1,12 +1,14 @@
|
|||||||
from vkbottle.user import UserLabeler, Message, User
|
from vkbottle.user import Message
|
||||||
|
|
||||||
TOKEN = "test"
|
TOKEN = "test"
|
||||||
bl = UserLabeler()
|
|
||||||
user = User(token=TOKEN)
|
|
||||||
|
|
||||||
|
|
||||||
prefix_bot = "хуй"
|
prefix_bot = "хуй"
|
||||||
prefix_dd = "дд"
|
prefix_dd = "дд"
|
||||||
|
user = None
|
||||||
|
|
||||||
|
DB_LOGIN = "postgres"
|
||||||
|
DB_PASSWORD = "MQLDUhDrF3cxj3zszsA63tZoSeSW"
|
||||||
|
DB_HOST = "51.38.114.136"
|
||||||
|
DB_NAME = "vk_lp"
|
||||||
|
|
||||||
|
|
||||||
async def edit_message(
|
async def edit_message(
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
|
import json
|
||||||
|
|
||||||
from vkbottle.dispatch.rules import ABCRule
|
from vkbottle.dispatch.rules import ABCRule
|
||||||
from vkbottle.user import Message
|
from vkbottle.user import Message
|
||||||
import json
|
|
||||||
|
|
||||||
|
|
||||||
def load_trusted_ids():
|
def load_trusted_ids():
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
from . import config, models, requests
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine
|
||||||
|
|
||||||
|
import config
|
||||||
|
|
||||||
|
DB_CONNECT_URL = f"postgresql+asyncpg://{config.DB_LOGIN}:{config.DB_PASSWORD}@{config.DB_HOST}/{config.DB_NAME}"
|
||||||
|
engine = create_async_engine(DB_CONNECT_URL)
|
||||||
|
async_session = async_sessionmaker(engine)
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
from sqlalchemy import (BigInteger, Column, Identity, Text)
|
||||||
|
from sqlalchemy.orm import DeclarativeBase
|
||||||
|
|
||||||
|
|
||||||
|
class Base(DeclarativeBase):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class UsersTokens(Base):
|
||||||
|
__tablename__ = "users_tokens"
|
||||||
|
|
||||||
|
id = Column("id", BigInteger, Identity(start=1, increment=1, minvalue=1, cycle=False, cache=1), nullable=False,
|
||||||
|
primary_key=True)
|
||||||
|
vkid = Column("vkid", BigInteger, nullable=False, unique=True)
|
||||||
|
token = Column("token", Text, nullable=False)
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
from loguru import logger
|
||||||
|
from sqlalchemy import select
|
||||||
|
|
||||||
|
import db
|
||||||
|
|
||||||
|
|
||||||
|
async def execute_statement(statement) -> None:
|
||||||
|
"""
|
||||||
|
Возвращает результат выполнения statement
|
||||||
|
:param statement:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
async with db.config.async_session() as session:
|
||||||
|
await session.execute(statement)
|
||||||
|
await session.commit()
|
||||||
|
except Exception as e:
|
||||||
|
logger.exception(e)
|
||||||
|
# return None
|
||||||
|
|
||||||
|
|
||||||
|
async def get_user_token(user_id: int) -> Optional[db.models.UsersTokens]:
|
||||||
|
"""
|
||||||
|
Возвращает токен пользователя
|
||||||
|
:param user_id: VKID
|
||||||
|
"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
async with db.config.async_session() as session:
|
||||||
|
result = await session.execute(select(db.models.UsersTokens).where(db.models.UsersTokens.vkid == user_id))
|
||||||
|
return result.scalars().one_or_none()
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logger.exception(e)
|
||||||
|
return None
|
||||||
@@ -1,13 +1,32 @@
|
|||||||
|
import asyncio
|
||||||
import sys
|
import sys
|
||||||
from config import user
|
|
||||||
from routes import labelers
|
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
from vkbottle.user import User
|
||||||
|
|
||||||
|
import config
|
||||||
|
import db
|
||||||
|
|
||||||
logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO")
|
logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO")
|
||||||
|
|
||||||
for custom_labeler in labelers:
|
|
||||||
user.labeler.load(custom_labeler)
|
async def main():
|
||||||
|
from routes import labelers
|
||||||
|
|
||||||
|
user_info = await db.requests.get_user_token(304398797)
|
||||||
|
if not user_info:
|
||||||
|
logger.error("user don't have a token in db!")
|
||||||
|
return
|
||||||
|
|
||||||
|
config.user = User(token=user_info.token)
|
||||||
|
|
||||||
|
for custom_labeler in labelers:
|
||||||
|
config.user.labeler.load(custom_labeler)
|
||||||
|
|
||||||
|
loop.create_task(config.user.run_polling())
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
user.run_forever()
|
loop = asyncio.get_event_loop()
|
||||||
|
loop.create_task(main())
|
||||||
|
loop.run_forever()
|
||||||
|
|||||||
@@ -2,3 +2,5 @@ gitpython==3.1.40
|
|||||||
loguru==0.7.2
|
loguru==0.7.2
|
||||||
pytz==2023.3.post1
|
pytz==2023.3.post1
|
||||||
vkbottle==4.3.12
|
vkbottle==4.3.12
|
||||||
|
SQLAlchemy~=2.0.22
|
||||||
|
asyncpg
|
||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
from . import game_handler, delete_msg, info_bot
|
from . import game_handler, delete_msg, info_bot, rewards
|
||||||
|
|
||||||
labelers = [game_handler.bl, delete_msg.bl, info_bot.bl]
|
labelers = [game_handler.bl, delete_msg.bl, info_bot.bl, rewards.bl]
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
import datetime
|
import datetime
|
||||||
from custom_rules.permission import Permission
|
|
||||||
from vkbottle.user import Message
|
|
||||||
from config import bl, user, prefix_dd
|
|
||||||
|
|
||||||
|
from vkbottle.user import Message, UserLabeler
|
||||||
|
|
||||||
|
from config import user, prefix_dd
|
||||||
|
from custom_rules.permission import Permission
|
||||||
|
|
||||||
|
bl = UserLabeler()
|
||||||
DD_SCRIPT = (
|
DD_SCRIPT = (
|
||||||
'var i = 0;var msg_ids = [];var count = %d;'
|
'var i = 0;var msg_ids = [];var count = %d;'
|
||||||
'var items = API.messages.getHistory({"peer_id":%d,"count":"200", "offset":"0"}).items;'
|
'var items = API.messages.getHistory({"peer_id":%d,"count":"200", "offset":"0"}).items;'
|
||||||
@@ -36,6 +39,7 @@ async def dd_handler(message: Message, count: int = 2):
|
|||||||
)
|
)
|
||||||
async def dd_all_handler(message: Message):
|
async def dd_all_handler(message: Message):
|
||||||
count = 1000
|
count = 1000
|
||||||
|
|
||||||
await user.api.execute(
|
await user.api.execute(
|
||||||
DD_SCRIPT % (
|
DD_SCRIPT % (
|
||||||
count,
|
count,
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
from vkbottle.user import Message
|
|
||||||
from config import bl, prefix_bot, edit_message
|
from vkbottle.user import Message, UserLabeler
|
||||||
|
|
||||||
|
from config import prefix_bot, edit_message
|
||||||
from custom_rules.permission import Permission
|
from custom_rules.permission import Permission
|
||||||
|
|
||||||
|
bl = UserLabeler()
|
||||||
|
|
||||||
|
|
||||||
@bl.message(
|
@bl.message(
|
||||||
Permission(),
|
Permission(),
|
||||||
|
|||||||
+7
-5
@@ -1,10 +1,12 @@
|
|||||||
import pytz
|
|
||||||
import git
|
import git
|
||||||
|
import pytz
|
||||||
|
from vkbottle.user import Message, UserLabeler
|
||||||
|
|
||||||
|
from config import edit_message, prefix_bot
|
||||||
from custom_rules.permission import Permission
|
from custom_rules.permission import Permission
|
||||||
from vkbottle.user import Message
|
from utils import rewards
|
||||||
from config import bl, edit_message, prefix_bot
|
|
||||||
from utils import rewards_list
|
bl = UserLabeler()
|
||||||
|
|
||||||
|
|
||||||
@bl.message(Permission(), text=[prefix_bot + " бот"])
|
@bl.message(Permission(), text=[prefix_bot + " бот"])
|
||||||
@@ -20,4 +22,4 @@ async def about(message: Message):
|
|||||||
"Название бота 🤖: dize_lp\n"
|
"Название бота 🤖: dize_lp\n"
|
||||||
f"Версия бота ⚙️: {version} от {version_date}\n"
|
f"Версия бота ⚙️: {version} от {version_date}\n"
|
||||||
"Создатель бота 👨🦱: @dize_dev (Илдырым Денница)\n"
|
"Создатель бота 👨🦱: @dize_dev (Илдырым Денница)\n"
|
||||||
f"Достижения🏆: {rewards_list[1]}")
|
f"Достижения🏆: {rewards['creator']}")
|
||||||
|
|||||||
+9
-7
@@ -1,12 +1,14 @@
|
|||||||
from custom_rules.permission import Permission
|
from vkbottle.user import Message, UserLabeler
|
||||||
from vkbottle.user import Message
|
|
||||||
from config import bl, edit_message, prefix_bot
|
|
||||||
from utils import rewards_list
|
|
||||||
|
|
||||||
listToStr = ' '.join(map(str, rewards_list))
|
from config import edit_message, prefix_bot
|
||||||
|
from custom_rules.permission import Permission
|
||||||
|
import utils
|
||||||
|
|
||||||
|
|
||||||
|
bl = UserLabeler()
|
||||||
|
|
||||||
|
|
||||||
@bl.message(Permission(), text=[prefix_bot + " достижения"])
|
@bl.message(Permission(), text=[prefix_bot + " достижения"])
|
||||||
async def rewards(message: Message):
|
async def rewards_cmd(message: Message):
|
||||||
await edit_message(message,
|
await edit_message(message,
|
||||||
"Вот список всех достижений 🏆:\n " + listToStr)
|
f"Вот список всех достижений 🏆:\n{utils.next_line_symbol.join(utils.rewards)}")
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
rewards_list = [
|
rewards = {
|
||||||
"Первооткрыватель 🎓\n",
|
"discoverer": "Первооткрыватель",
|
||||||
"Создатель ⭐\n",
|
"creator": "Создатель",
|
||||||
"Администратор 👨🏻💼\n",
|
"admin": "Администратор",
|
||||||
"Модератор 🛡️\n",
|
"moderator": "Moderator",
|
||||||
"Исследователь 🔎\n",
|
"researcher": "Исследователь",
|
||||||
"Спонсор 💸\n",
|
"sponsor": "Спонсор"
|
||||||
]
|
}
|
||||||
|
|
||||||
|
next_line_symbol = "\n"
|
||||||
|
|||||||
Reference in New Issue
Block a user