mirror of
https://github.com/PhoenixTwoFive/karaoqueue.git
synced 2025-07-01 15:51:41 +02:00
Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
5efa21924b
|
|||
4c806c3550
|
|||
c21e6300e9 | |||
7525708dce
|
|||
37d95f61b2 | |||
a54953ff0d
|
|||
349eff9a09
|
|||
b7a79462dc
|
|||
0a038029f7 | |||
93e6606d6d
|
|||
1faa2614fa
|
|||
93c8a2cb7b
|
|||
ddb1e0d2a0 | |||
e66e4a6c19
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -87,7 +87,7 @@ ipython_config.py
|
|||||||
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||||
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||||
# install all needed dependencies.
|
# install all needed dependencies.
|
||||||
#Pipfile.lock
|
Pipfile.lock
|
||||||
|
|
||||||
# celery beat schedule file
|
# celery beat schedule file
|
||||||
celerybeat-schedule
|
celerybeat-schedule
|
||||||
|
@ -1,12 +1,16 @@
|
|||||||
FROM tiangolo/meinheld-gunicorn-flask:python3.9
|
FROM tiangolo/meinheld-gunicorn-flask:python3.9
|
||||||
|
|
||||||
RUN apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
|
# Currently unusable, mariadb is not available through installer for debian 12
|
||||||
RUN curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
|
# RUN apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
|
||||||
|
# RUN curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
|
||||||
|
|
||||||
RUN apt-get update
|
RUN apt-get update
|
||||||
RUN apt-get upgrade -y
|
RUN apt-get upgrade -y
|
||||||
RUN apt-get dist-upgrade
|
RUN apt-get dist-upgrade
|
||||||
|
|
||||||
|
# In the meantime, acquire the mariadb packages through apt
|
||||||
|
RUN apt-get install -y libmariadb3 libmariadb-dev
|
||||||
|
|
||||||
COPY ./backend/requirements.txt /app/requirements.txt
|
COPY ./backend/requirements.txt /app/requirements.txt
|
||||||
|
|
||||||
RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt
|
RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt
|
||||||
|
48
backend/Pipfile
Normal file
48
backend/Pipfile
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
[[source]]
|
||||||
|
url = "https://pypi.org/simple"
|
||||||
|
verify_ssl = true
|
||||||
|
name = "pypi"
|
||||||
|
|
||||||
|
[packages]
|
||||||
|
autopep8 = "==2.0.2"
|
||||||
|
beautifulsoup4 = "==4.12.0"
|
||||||
|
bs4 = "==0.0.1"
|
||||||
|
certifi = "==2022.12.7"
|
||||||
|
charset-normalizer = "==3.1.0"
|
||||||
|
click = "==8.1.3"
|
||||||
|
flake8 = "==6.0.0"
|
||||||
|
flask = "==2.2.3"
|
||||||
|
flask-basicauth = "==0.2.0"
|
||||||
|
greenlet = "==2.0.2"
|
||||||
|
gunicorn = "==20.1.0"
|
||||||
|
idna = "==3.4"
|
||||||
|
itsdangerous = "==2.1.2"
|
||||||
|
jinja2 = "==3.1.2"
|
||||||
|
mariadb = "==1.1.6"
|
||||||
|
markupsafe = "==2.1.2"
|
||||||
|
mccabe = "==0.7.0"
|
||||||
|
mysql = "==0.0.3"
|
||||||
|
mysqlclient = "==2.1.1"
|
||||||
|
numpy = "==1.24.2"
|
||||||
|
packaging = "==23.0"
|
||||||
|
pandas = "==1.5.3"
|
||||||
|
pycodestyle = "==2.10.0"
|
||||||
|
pyflakes = "==3.0.1"
|
||||||
|
pymysql = "==1.0.3"
|
||||||
|
python-dateutil = "==2.8.2"
|
||||||
|
pytz = "==2023.3"
|
||||||
|
requests = "==2.28.2"
|
||||||
|
six = "==1.16.0"
|
||||||
|
soupsieve = "==2.4"
|
||||||
|
sqlalchemy = "==2.0.7"
|
||||||
|
toml = "==0.10.2"
|
||||||
|
tomli = "==2.0.1"
|
||||||
|
typing-extensions = "==4.5.0"
|
||||||
|
urllib3 = "==1.26.15"
|
||||||
|
werkzeug = "==2.2.3"
|
||||||
|
|
||||||
|
[dev-packages]
|
||||||
|
|
||||||
|
[requires]
|
||||||
|
python_version = "3.9"
|
||||||
|
python_full_version = "3.9.17"
|
@ -37,7 +37,7 @@ def enqueue():
|
|||||||
if not helpers.is_valid_uuid(client_id):
|
if not helpers.is_valid_uuid(client_id):
|
||||||
print(request.data)
|
print(request.data)
|
||||||
abort(400)
|
abort(400)
|
||||||
name = request.json['name']
|
name = request.json['name'].strip()
|
||||||
song_id = request.json['id']
|
song_id = request.json['id']
|
||||||
if request.authorization:
|
if request.authorization:
|
||||||
entry_id = database.add_entry(name, song_id, client_id)
|
entry_id = database.add_entry(name, song_id, client_id)
|
||||||
|
@ -91,8 +91,8 @@ def setup_config(app: Flask):
|
|||||||
exit()
|
exit()
|
||||||
default_config = {'username': initial_username,
|
default_config = {'username': initial_username,
|
||||||
'password': initial_password,
|
'password': initial_password,
|
||||||
'entryquota': 3,
|
'entryquota': 2,
|
||||||
'maxqueue': 20,
|
'maxqueue': 10,
|
||||||
'entries_allowed': 1,
|
'entries_allowed': 1,
|
||||||
'theme': 'default.css'}
|
'theme': 'default.css'}
|
||||||
for key, value in default_config.items():
|
for key, value in default_config.items():
|
||||||
|
@ -169,7 +169,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getOwnedEntries() {
|
function getOwnedEntries() {
|
||||||
return JSON.parse(localStorage.getItem("ownedEntries"))
|
var entries = JSON.parse(localStorage.getItem("ownedEntries"))
|
||||||
|
if (entries == null) {
|
||||||
|
entries = []
|
||||||
|
}
|
||||||
|
return entries;
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -187,15 +187,16 @@
|
|||||||
function TableActions(value, row, index) {
|
function TableActions(value, row, index) {
|
||||||
let outerHTML = ""
|
let outerHTML = ""
|
||||||
if (row.Transferred == 1) {
|
if (row.Transferred == 1) {
|
||||||
outerHTML = "<button type=\"button\" class=\"btn btn-default\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Markierung zurückziehen\" onclick=\"event.stopPropagation();$(this).tooltip('dispose');markEntryAsTransferred(" + row.entry_ID + ")\"><i class=\"fas fa-backward\"></i></button> <button type=\"button\" class=\"btn btn-success\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Als gesungen markieren\" onclick=\"event.stopPropagation();$(this).tooltip('dispose');markEntryAsSung(" + row.entry_ID + ")\"><i class=\"fas fa-check\"></i></button> <button type=\"button\" class=\"btn btn-danger\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Eintrag löschen\" onclick=\"event.stopPropagation();$(this).tooltip('dispose');confirmDeleteEntry('" + row.Name + "'," + row.entry_ID + ")\"><i class=\"fas fa-trash\"></i></button>";
|
outerHTML = "<button type=\"button\" class=\"btn btn-default\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Markierung zurückziehen\" onclick=\"event.stopPropagation();$(this).tooltip('dispose');markEntryAsTransferred(" + row.entry_ID + ")\"><i class=\"fas fa-backward\"></i></button> <button type=\"button\" class=\"btn btn-success\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Als gesungen markieren\" onclick=\"event.stopPropagation();$(this).tooltip('dispose');markEntryAsSung(" + row.entry_ID + ")\"><i class=\"fas fa-check\"></i></button> <button type=\"button\" class=\"btn btn-danger\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Eintrag löschen\" onclick=\"event.stopPropagation();$(this).tooltip('dispose');confirmDeleteEntry(this.parentElement.parentElement.children[1].innerText," + row.entry_ID + ")\"><i class=\"fas fa-trash\"></i></button>";
|
||||||
} else {
|
} else {
|
||||||
outerHTML = "<button type=\"button\" class=\"btn btn-info\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Als übertragen markieren\" onclick=\"event.stopPropagation();$(this).tooltip('dispose');markEntryAsTransferred(" + row.entry_ID + ")\"><i class=\"fas fa-exchange-alt\"></i></button> <button type=\"button\" class=\"btn btn-success\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Als gesungen markieren\" onclick=\"event.stopPropagation();$(this).tooltip('dispose');markEntryAsSung(" + row.entry_ID + ")\"><i class=\"fas fa-check\"></i></button> <button type=\"button\" class=\"btn btn-danger\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Eintrag löschen\" onclick=\"event.stopPropagation();$(this).tooltip('dispose');confirmDeleteEntry('" + row.Name + "'," + row.entry_ID + ")\"><i class=\"fas fa-trash\"></i></button>";
|
outerHTML = "<button type=\"button\" class=\"btn btn-info\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Als übertragen markieren\" onclick=\"event.stopPropagation();$(this).tooltip('dispose');markEntryAsTransferred(" + row.entry_ID + ")\"><i class=\"fas fa-exchange-alt\"></i></button> <button type=\"button\" class=\"btn btn-success\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Als gesungen markieren\" onclick=\"event.stopPropagation();$(this).tooltip('dispose');markEntryAsSung(" + row.entry_ID + ")\"><i class=\"fas fa-check\"></i></button> <button type=\"button\" class=\"btn btn-danger\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Eintrag löschen\" onclick=\"event.stopPropagation();$(this).tooltip('dispose');confirmDeleteEntry(this.parentElement.parentElement.children[1].innerText," + row.entry_ID + ")\"><i class=\"fas fa-trash\"></i></button>";
|
||||||
}
|
}
|
||||||
return outerHTML;
|
return outerHTML;
|
||||||
}
|
}
|
||||||
|
|
||||||
function CopyFormatter(value, row, index) {
|
function CopyFormatter(value, row, index) {
|
||||||
return "<span onclick='copyAndNotify(\""+value+"\")'>"+value+"</span>";
|
let escapedString = value.replace("\"","\\\"").replace("\'", "\\\'")
|
||||||
|
return "<span onclick='copyAndNotify(this.innerText)'>"+value+"</span>";
|
||||||
}
|
}
|
||||||
|
|
||||||
function getIdSelections() {
|
function getIdSelections() {
|
||||||
|
@ -67,6 +67,9 @@
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
submitModal();
|
submitModal();
|
||||||
});
|
});
|
||||||
|
$('#enqueueModal').on('shown.bs.modal', function (e) {
|
||||||
|
$("#singerNameInput").focus();
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ secrets:
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
karaoqueue:
|
karaoqueue:
|
||||||
image: "ghcr.io/phoenixtwofive/karaoqueue:v2023.04"
|
image: "ghcr.io/phoenixtwofive/karaoqueue:v2023.06"
|
||||||
build: .
|
build: .
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
|
Reference in New Issue
Block a user