Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 109 additions & 2 deletions app/keys/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@ def lister(
filters: list[str] | None = None,
select_filters: str | None = None,
search: bool = False,
server_back: int | None = None,
user_back: int | None = None,
) -> InlineKeyboardMarkup:
kb = InlineKeyboardBuilder()

Expand Down Expand Up @@ -184,17 +186,66 @@ def lister(
),
width=2,
)

if server_back and not user_back:
kb.row(
InlineKeyboardButton(
text=KeyboardTexts.BACK,
callback_data=PageCB(
page=Pages.MENU, action=Actions.LIST, panel=server_back
).pack(),
),
width=1,
)
if server_back and user_back:
kb.row(
InlineKeyboardButton(
text=KeyboardTexts.BACK,
callback_data=PageCB(
page=Pages.USERS,
action=Actions.INFO,
dataid=user_back,
panel=server_back,
).pack(),
),
width=1,
)
return kb.as_markup()

def cancel(
self,
server_back: int | None = None,
user_back: int | None = None,
) -> InlineKeyboardMarkup:
kb = InlineKeyboardBuilder()

kb.button(
text=KeyboardTexts.HOMES, callback_data=PageCB(page=Pages.HOME).pack()
)

if server_back and not user_back:
kb.row(
InlineKeyboardButton(
text=KeyboardTexts.BACK,
callback_data=PageCB(
page=Pages.MENU, action=Actions.LIST, panel=server_back
).pack(),
),
width=1,
)
if server_back and user_back:
kb.row(
InlineKeyboardButton(
text=KeyboardTexts.BACK,
callback_data=PageCB(
page=Pages.USERS,
action=Actions.INFO,
dataid=user_back,
panel=server_back,
).pack(),
),
width=1,
)

return kb.as_markup()

def selector(
Expand All @@ -207,6 +258,8 @@ def selector(
panel: int | None = None,
extra: str | None = None,
all_selects: bool = False,
user_back: int | None = None,
server_back: int | None = None,
) -> InlineKeyboardMarkup:
kb = InlineKeyboardBuilder()

Expand Down Expand Up @@ -321,10 +374,40 @@ def selector(
width=1,
)

if server_back and not user_back:
kb.row(
InlineKeyboardButton(
text=KeyboardTexts.BACK,
callback_data=PageCB(
page=Pages.MENU, action=Actions.LIST, panel=server_back
).pack(),
),
width=1,
)
if server_back and user_back:
kb.row(
InlineKeyboardButton(
text=KeyboardTexts.BACK,
callback_data=PageCB(
page=Pages.USERS,
action=Actions.INFO,
dataid=user_back,
panel=server_back,
).pack(),
),
width=1,
)

return kb.as_markup()

def modify(
self, dataid: int, datatypes: list[Enum], page: Pages, panel: int | None = None
self,
dataid: int,
datatypes: list[Enum],
page: Pages,
panel: int | None = None,
server_back: int | None = None,
user_back: int | None = None,
) -> InlineKeyboardMarkup:
kb = InlineKeyboardBuilder()

Expand All @@ -349,4 +432,28 @@ def modify(
width=1,
)

if server_back and not user_back:
kb.row(
InlineKeyboardButton(
text=KeyboardTexts.BACK,
callback_data=PageCB(
page=Pages.MENU, action=Actions.LIST, panel=server_back
).pack(),
),
width=1,
)
if server_back and user_back:
kb.row(
InlineKeyboardButton(
text=KeyboardTexts.BACK,
callback_data=PageCB(
page=Pages.USERS,
action=Actions.INFO,
dataid=user_back,
panel=server_back,
).pack(),
),
width=1,
)

return kb.as_markup()
14 changes: 10 additions & 4 deletions app/routers/actions/items/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ async def fromadmin(
admins = await ClinetManager.get_admins(server=server)
if not admins:
track = await callback.message.edit_text(
text=MessageTexts.NOT_FOUND, reply_markup=BotKeys.cancel()
text=MessageTexts.NOT_FOUND,
reply_markup=BotKeys.cancel(server_back=server.id),
)
return await tracker.add(track)
return await callback.message.edit_text(
Expand All @@ -60,6 +61,7 @@ async def fromadmin(
types=Pages.ACTIONS,
action=Actions.INFO,
panel=server.id,
server_back=server.id,
),
)

Expand All @@ -80,7 +82,8 @@ async def toadmin(callback: CallbackQuery, callback_data: SelectCB, state: FSMCo
admins = await ClinetManager.get_admins(server=server)
if not admins:
track = await callback.message.edit_text(
text=MessageTexts.NOT_FOUND, reply_markup=BotKeys.cancel()
text=MessageTexts.NOT_FOUND,
reply_markup=BotKeys.cancel(server_back=server.id),
)
return await tracker.add(track)
await state.set_state(AdminActionsForm.TO)
Expand All @@ -91,6 +94,7 @@ async def toadmin(callback: CallbackQuery, callback_data: SelectCB, state: FSMCo
types=Pages.ACTIONS,
action=Actions.INFO,
panel=server.id,
server_back=server.id,
),
)

Expand Down Expand Up @@ -118,6 +122,7 @@ async def confrimaction(
types=Pages.ACTIONS,
action=Actions.INFO,
panel=server.id,
server_back=server.id,
),
)

Expand All @@ -136,7 +141,7 @@ async def action(callback: CallbackQuery, callback_data: SelectCB, state: FSMCon

if callback_data.select == YesOrNot.NO.value:
track = await callback.message.edit_text(
text=MessageTexts.FAILED, reply_markup=BotKeys.cancel()
text=MessageTexts.FAILED, reply_markup=BotKeys.cancel(server_back=server.id)
)
return await tracker.add(track)

Expand Down Expand Up @@ -176,6 +181,7 @@ async def process_user_batch(users: list[MarzneshinUserResponse]) -> int:
await asyncio.sleep(0.01)

track = await callback.message.answer(
text=f"Action Finished: {success}/{all_users}", reply_markup=BotKeys.cancel()
text=f"Action Finished: {success}/{all_users}",
reply_markup=BotKeys.cancel(server_back=server.id),
)
return await tracker.cleardelete(callback, track)
14 changes: 10 additions & 4 deletions app/routers/actions/items/configs.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ async def select(callback: CallbackQuery, callback_data: SelectCB, state: FSMCon
admins = await ClinetManager.get_admins(server=server)
if not admins:
track = await callback.message.edit_text(
text=MessageTexts.NOT_FOUND, reply_markup=BotKeys.cancel()
text=MessageTexts.NOT_FOUND,
reply_markup=BotKeys.cancel(server_back=server.id),
)
return await tracker.add(track)

Expand All @@ -56,6 +57,7 @@ async def select(callback: CallbackQuery, callback_data: SelectCB, state: FSMCon
types=Pages.ACTIONS,
action=Actions.INFO,
panel=server.id,
server_back=server.id,
),
)

Expand All @@ -78,7 +80,8 @@ async def admin(callback: CallbackQuery, callback_data: SelectCB, state: FSMCont
configs = await ClinetManager.get_configs(server)
if not configs:
track = await callback.message.edit_text(
text=MessageTexts.NOT_FOUND, reply_markup=BotKeys.cancel()
text=MessageTexts.NOT_FOUND,
reply_markup=BotKeys.cancel(server_back=server.id),
)
return await tracker.add(track)

Expand All @@ -91,6 +94,7 @@ async def admin(callback: CallbackQuery, callback_data: SelectCB, state: FSMCont
action=Actions.INFO,
panel=server.id,
width=1,
server_back=server.id,
),
)

Expand All @@ -115,7 +119,8 @@ async def action(callback: CallbackQuery, callback_data: SelectCB, state: FSMCon
)
if not target_config:
track = await callback.message.edit_text(
text=MessageTexts.NOT_FOUND, reply_markup=BotKeys.cancel()
text=MessageTexts.NOT_FOUND,
reply_markup=BotKeys.cancel(server_back=server.id),
)
return await tracker.add(track)

Expand Down Expand Up @@ -173,6 +178,7 @@ async def process_user(user: MarzneshinUserResponse):
page += 1

track = await callback.message.answer(
text=f"Action Finished: {success}/{all_users}", reply_markup=BotKeys.cancel()
text=f"Action Finished: {success}/{all_users}",
reply_markup=BotKeys.cancel(server_back=server.id),
)
return await tracker.cleardelete(callback, track)
12 changes: 8 additions & 4 deletions app/routers/actions/items/users.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ async def select(callback: CallbackQuery, callback_data: SelectCB, state: FSMCon
admins = await ClinetManager.get_admins(server=server)
if not admins:
track = await callback.message.edit_text(
text=MessageTexts.NOT_FOUND, reply_markup=BotKeys.cancel()
text=MessageTexts.NOT_FOUND,
reply_markup=BotKeys.cancel(server_back=server.id),
)
return await tracker.add(track)
admins = [admin.username for admin in admins]
Expand All @@ -67,6 +68,7 @@ async def select(callback: CallbackQuery, callback_data: SelectCB, state: FSMCon
types=Pages.ACTIONS,
action=Actions.INFO,
panel=server.id,
server_back=server.id,
),
)

Expand All @@ -92,6 +94,7 @@ async def admins(callback: CallbackQuery, callback_data: SelectCB, state: FSMCon
types=Pages.ACTIONS,
action=Actions.INFO,
panel=server.id,
server_back=server.id,
),
)

Expand All @@ -110,7 +113,7 @@ async def action(callback: CallbackQuery, callback_data: SelectCB, state: FSMCon

if callback_data.select == YesOrNot.NO.value:
track = await callback.message.edit_text(
text=MessageTexts.FAILED, reply_markup=BotKeys.cancel()
text=MessageTexts.FAILED, reply_markup=BotKeys.cancel(server_back=server.id)
)
return await tracker.add(track)

Expand All @@ -134,7 +137,7 @@ async def action(callback: CallbackQuery, callback_data: SelectCB, state: FSMCon
)
return await callback.message.edit_text(
MessageTexts.SUCCESS if result else MessageTexts.FAILED,
reply_markup=BotKeys.cancel(),
reply_markup=BotKeys.cancel(server_back=server.id),
)

page = 1
Expand Down Expand Up @@ -168,6 +171,7 @@ async def process_user_batch(users: list[MarzneshinUserResponse]) -> int:
await asyncio.sleep(0.01)

track = await callback.message.answer(
text=f"Action Finished: {success}/{all_users}", reply_markup=BotKeys.cancel()
text=f"Action Finished: {success}/{all_users}",
reply_markup=BotKeys.cancel(server_back=server.id),
)
return await tracker.cleardelete(callback, track)
1 change: 1 addition & 0 deletions app/routers/actions/menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,6 @@ async def data(callback: CallbackQuery, callback_data: PageCB):
types=Pages.ACTIONS,
action=Actions.INFO,
panel=server.id,
server_back=server.id,
),
)
1 change: 1 addition & 0 deletions app/routers/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ async def start(message: Message, state: FSMContext):
action=Actions.MODIFY,
extra=user.username,
panel=server.id,
server_back=server.id,
),
)
return await tracker.add(track)
Expand Down
1 change: 1 addition & 0 deletions app/routers/servers/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,6 @@ async def data(callback: CallbackQuery, callback_data: PageCB):
],
page=Pages.SERVERS,
panel=server.id,
server_back=server.id,
),
)
11 changes: 7 additions & 4 deletions app/routers/servers/modify.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,14 @@ async def start_modify(
types=Pages.SERVERS,
action=Actions.MODIFY,
panel=server.id,
server_back=server.id,
),
)

await state.set_state(ServerModifyForm.ALL)
return await callback.message.edit_text(text=text, reply_markup=BotKeys.cancel())
return await callback.message.edit_text(
text=text, reply_markup=BotKeys.cancel(server_back=server.id)
)


@router.message(StateFilter(ServerModifyForm.ALL))
Expand Down Expand Up @@ -113,7 +116,7 @@ async def finish_modify(message: Message, state: FSMContext):
await state.clear()
track = await message.answer(
text=MessageTexts.SUCCESS if server_modify else MessageTexts.FAILED,
reply_markup=BotKeys.cancel(),
reply_markup=BotKeys.cancel(server_back=serverid),
)
return await tracker.cleardelete(message, track)

Expand All @@ -132,7 +135,7 @@ async def remove(callback: CallbackQuery, callback_data: SelectCB, state: FSMCon

if callback_data.select == YesOrNot.NO.value:
track = await callback.message.edit_text(
text=MessageTexts.FAILED, reply_markup=BotKeys.cancel()
text=MessageTexts.FAILED, reply_markup=BotKeys.cancel(server_back=server.id)
)
return await tracker.add(track)

Expand All @@ -157,5 +160,5 @@ async def remove(callback: CallbackQuery, callback_data: SelectCB, state: FSMCon
)
return await callback.message.edit_text(
text=MessageTexts.SUCCESS if action else MessageTexts.FAILED,
reply_markup=BotKeys.cancel(),
reply_markup=BotKeys.cancel(server_back=server.id),
)
2 changes: 1 addition & 1 deletion app/routers/stats/show.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,6 @@ async def show_stats(callback: CallbackQuery, callback_data: PageCB):
)

track = await callback.message.edit_text(
text=stats_text, reply_markup=BotKeys.cancel(), parse_mode="HTML"
text=stats_text, reply_markup=BotKeys.cancel(server_back=server.id)
)
await tracker.add(track)
Loading