diff --git a/.gitignore b/.gitignore index 8b1d2afa..e5435ab9 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,6 @@ rpusers.json test.py static/servers.json config.json.save +venv/ +node_modules/ +.vscode/ \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..9ba67d50 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,10 @@ +{ + overrides: [ + { + files: ["*.html"], + options: { + parser: "jinja-template" + }, + }, + ], +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..51f1ca63 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,52 @@ +{ + "name": "RealistikPanel", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "devDependencies": { + "prettier": "^2.8.1", + "prettier-plugin-jinja-template": "^0.0.4" + } + }, + "node_modules/prettier": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", + "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-jinja-template": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/prettier-plugin-jinja-template/-/prettier-plugin-jinja-template-0.0.4.tgz", + "integrity": "sha512-26wupCFarh5tmtupZor8WsHCUI9oj3aJ9/U9a1SVEC9fREONLkuiZ5xoaBmFeKOrQyWVWD3cv+Ma9JtOUmuOzA==", + "dev": true, + "peerDependencies": { + "prettier": "^2.0.0" + } + } + }, + "dependencies": { + "prettier": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", + "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", + "dev": true + }, + "prettier-plugin-jinja-template": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/prettier-plugin-jinja-template/-/prettier-plugin-jinja-template-0.0.4.tgz", + "integrity": "sha512-26wupCFarh5tmtupZor8WsHCUI9oj3aJ9/U9a1SVEC9fREONLkuiZ5xoaBmFeKOrQyWVWD3cv+Ma9JtOUmuOzA==", + "dev": true, + "requires": {} + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..f128932d --- /dev/null +++ b/package.json @@ -0,0 +1,6 @@ +{ + "devDependencies": { + "prettier": "^2.8.1", + "prettier-plugin-jinja-template": "^0.0.4" + } +} diff --git a/panel/functions.py b/panel/functions.py index c23334ea..a3ec870f 100644 --- a/panel/functions.py +++ b/panel/functions.py @@ -2155,15 +2155,7 @@ def UserPageCount(): mycursor.execute("SELECT count(*) FROM users") TheNumber = mycursor.fetchone()[0] # working with page number (this is a mess...) - TheNumber /= 50 - # if not single digit, round up - if len(str(TheNumber)) != 0: - NewNumber = round(TheNumber) - # if number was rounded down - if NewNumber == round(int(str(TheNumber).split(".")[0])): - NewNumber += 1 - TheNumber = NewNumber - return TheNumber + return math.ceil(TheNumber / PAGE_SIZE) def RapLogCount(): @@ -2171,22 +2163,8 @@ def RapLogCount(): # i made it separate, fite me mycursor.execute("SELECT count(*) FROM rap_logs") TheNumber = mycursor.fetchone()[0] - # working with page number (this is a mess...) - TheNumber /= 50 - # if not single digit, round up - if len(str(TheNumber)) != 0: - NewNumber = round(TheNumber) - # if number was rounded down - if NewNumber == round(int(str(TheNumber).split(".")[0])): - NewNumber += 1 - TheNumber = NewNumber - # makign page dict - Pages = [] - while TheNumber != 0: - Pages.append(TheNumber) - TheNumber -= 1 - Pages.reverse() - return Pages + + return math.ceil(TheNumber / PAGE_SIZE) def GetClans(Page: int = 1): @@ -2630,6 +2608,19 @@ def ban_pages() -> int: return math.ceil(ban_count() / PAGE_SIZE) +def request_count() -> int: + """Returns the total number of requests.""" + + mycursor.execute("SELECT COUNT(*) FROM rank_requests WHERE blacklisted = 0") + return mycursor.fetchone()[0] + + +def request_pages() -> int: + """Returns the number of pages in the request.""" + + return math.ceil(request_count() / PAGE_SIZE) + + def fetch_user_banlogs(user_id: int) -> list[BanLog]: """Fetches all ban logs targetting a specific user. @@ -2819,6 +2810,12 @@ def get_hwid_count(user_id: int) -> int: return mycursor.fetchone()[0] +def hwid_pages(user_id: int) -> int: + """Returns the number of pages in the ban log.""" + + return math.ceil(get_hwid_count(user_id) / PAGE_SIZE) + + class HWIDResult(TypedDict): result: HWIDLog exact_matches: list[HWIDLog] diff --git a/panel/init_app.py b/panel/init_app.py index 82673c8b..14470c41 100644 --- a/panel/init_app.py +++ b/panel/init_app.py @@ -192,7 +192,7 @@ def panel_search_users(page_str: str = "1"): title="Search Users", UserData=user_data, page=page, - Pages=UserPageCount(), + pages=UserPageCount(), ) @app.route("/index.php") @@ -600,6 +600,7 @@ def panel_view_rank_requests(Page): config=config, RankRequests=GetRankRequests(int(Page)), page=int(Page), + pages=request_pages(), ) else: return no_permission_response(request.path) @@ -705,6 +706,7 @@ def view_user_hwid_route(user_id: int, page: int = 1): hwid_logs=page_info["results"], user=page_info["user"], page=page, + pages=hwid_pages(user_id), total_hwids=get_hwid_count(user_id), ) diff --git a/templates/badges.html b/templates/badges.html index eadb991e..42e97ff5 100644 --- a/templates/badges.html +++ b/templates/badges.html @@ -1,42 +1,48 @@ {% extends "base.html" %} {% block content %} -
Modify or edit profile badges!
-Modify or edit profile badges!
+ID | -Name | -Icon | -Actions | -
---|---|---|---|
{{ badge["Id"] }} | -{{ badge["Name"] }} | -- | - | - -
ID | +Name | +Icon | +Actions | +
---|---|---|---|
{{ badge["Id"] }} | +{{ badge["Name"] }} | ++ | + | + +
View detailed ban reasons for the entire server!
- -{% for log in ban_logs %} - -View detailed ban reasons for the entire server!
+ + {{ pagination.pagination('/ban-logs', page, pages) }} + {% for log in ban_logs %} +Change the settings of your osu! server. This includes things such as login messeges, menu icons and more!
-+ Change the settings of your osu! server. This includes things such as login + messeges, menu icons and more! +
+