Favicon, yandex, greed
This commit is contained in:
parent
279c07ea41
commit
17d76cdc7e
5 changed files with 69 additions and 27 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -564,4 +564,7 @@ FodyWeavers.xsd
|
|||
### END Visual Studio ###
|
||||
|
||||
# Hide internal database and it's backups
|
||||
*.db
|
||||
*.db
|
||||
|
||||
# Yandex verification file
|
||||
yandex_*.html
|
BIN
favicon.ico
Normal file
BIN
favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
3
favicon.ico.license
Normal file
3
favicon.ico.license
Normal file
|
@ -0,0 +1,3 @@
|
|||
SPDX-FileCopyrightText: 2024 Egor Guslyancev <electromagneticcyclone@disroot.org>
|
||||
|
||||
SPDX-License-Identifier: CC0-1.0
|
18
server.py
18
server.py
|
@ -17,7 +17,7 @@ import timeout as tmo
|
|||
# Simple config
|
||||
GET_ONLY_FOR_VIP = True
|
||||
POST_ONLY_FOR_VIP = True
|
||||
VERSION = "20240502.2"
|
||||
VERSION = "20240502.3"
|
||||
|
||||
CHARSET = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||
|
||||
|
@ -256,6 +256,22 @@ class S(BaseHTTPRequestHandler):
|
|||
self._set_response(404)
|
||||
self.end_headers()
|
||||
self.wfile.write("404 Not found".encode('utf-8'))
|
||||
case "/favicon.ico":
|
||||
self._set_response(200)
|
||||
with open("favicon.ico", "rb") as fi:
|
||||
data = fi.read()
|
||||
self.send_header('Accept-Ranges', 'bytes')
|
||||
self.send_header('Content-Disposition', 'attachment')
|
||||
self.send_header('Content-Length', len(data))
|
||||
self.end_headers()
|
||||
self.wfile.write(data)
|
||||
case _ if self_path.startswith("/yandex_"):
|
||||
self._set_response(200)
|
||||
with open(self_path[1:], "rb") as fi:
|
||||
data = fi.read()
|
||||
self.send_header('Content-type', 'text/html; charset=utf-8')
|
||||
self.end_headers()
|
||||
self.wfile.write(data)
|
||||
case _ if self_path.startswith("/assets/"):
|
||||
self._set_response(200)
|
||||
with open(self_path[1:], "rb") as fi:
|
||||
|
|
70
user.js
70
user.js
|
@ -2,7 +2,7 @@
|
|||
// @name Sorryops
|
||||
// @name:ru Сориупс
|
||||
// @namespace https://git.disroot.org/electromagneticcyclone/sorryops
|
||||
// @version 20240502.2
|
||||
// @version 20240502.3
|
||||
// @description Collect and reuse ORIOKS test answers
|
||||
// @description:ru Скрипт для сбора и переиспользования ответов на тесты ОРИОКС
|
||||
// @icon https://orioks.miet.ru/favicon.ico
|
||||
|
@ -20,12 +20,12 @@
|
|||
// @require https://openuserjs.org/src/libs/sizzle/GM_config.js
|
||||
// @connect sorryops.ru
|
||||
// @run-at document-start
|
||||
// @downloadURL https://update.greasyfork.org/scripts/481036/Sorryops.user.js
|
||||
// @updateURL https://update.greasyfork.org/scripts/481036/Sorryops.meta.js
|
||||
// @downloadURL https://update.greasyfork.org/scripts/481036/Sorryops.user.js
|
||||
// @updateURL https://update.greasyfork.org/scripts/481036/Sorryops.meta.js
|
||||
// ==/UserScript==
|
||||
|
||||
/* Version */
|
||||
const VERSION = "20240502.2";
|
||||
const VERSION = "20240502.3";
|
||||
/* End Version */
|
||||
|
||||
/* Charset */
|
||||
|
@ -48,6 +48,7 @@ const all_labels = {
|
|||
auto_answer_first: "First",
|
||||
auto_answer_random: "Random",
|
||||
auto_answer_not_greedy: "Choose a known answer if there are more wrong answers than that number",
|
||||
auto_answer_greed_level: "Number of randomly answered questions",
|
||||
display_values: "Answers variant",
|
||||
display_values_ori: "ORIOKS",
|
||||
display_values_sorry: "Sorry",
|
||||
|
@ -74,6 +75,7 @@ const all_labels = {
|
|||
auto_answer_first: "Первый",
|
||||
auto_answer_random: "Случайный",
|
||||
auto_answer_not_greedy: "Выбирать известный ответ, если неправильных больше этого числа",
|
||||
auto_answer_greed_level: "Количество вопросов, на которые будет случайный ответ",
|
||||
display_values: "Вариант отображения ответов",
|
||||
display_values_ori: "ОРИОКС",
|
||||
display_values_sorry: "Сори",
|
||||
|
@ -162,6 +164,11 @@ var config = new GM_config({
|
|||
type: 'number',
|
||||
default: -1,
|
||||
},
|
||||
auto_answer_greed_level: {
|
||||
label: labels.auto_answer_greed_level,
|
||||
type: 'number',
|
||||
default: -1,
|
||||
},
|
||||
display_values: {
|
||||
label: labels.display_values,
|
||||
type: 'select',
|
||||
|
@ -648,32 +655,40 @@ function auto_answer() {
|
|||
} break;
|
||||
}
|
||||
}
|
||||
var greed = GM_getValue('greed');
|
||||
if (greed === undefined) {
|
||||
greed = 99999;
|
||||
}
|
||||
if (correct != undefined) {
|
||||
pick_answer(correct);
|
||||
} else if ((incorrect.length >= config.get('auto_answer_not_greedy')) && (config.get('auto_answer_not_greedy') > 0)) {
|
||||
chosen_answer = Math.floor(Math.random() * incorrect.length);
|
||||
pick_answer(incorrect[chosen_answer]);
|
||||
} else if (auto_answer == labels.auto_answer_random) {
|
||||
switch (type) {
|
||||
case 'radio': {
|
||||
var possible_answers = [];
|
||||
for (answer in answers) {
|
||||
if (incorrect.includes(answers[answer].sorry_value) == false) {
|
||||
possible_answers.push(answer);
|
||||
if ((incorrect.length >= Math.max(config.get('auto_answer_not_greedy'), 1)) &&
|
||||
((config.get('auto_answer_not_greedy') > 0) || (greed <= 0))) {
|
||||
chosen_answer = Math.floor(Math.random() * incorrect.length);
|
||||
pick_answer(incorrect[chosen_answer]);
|
||||
} else {
|
||||
GM_setValue('greed', greed - 1);
|
||||
switch (type) {
|
||||
case 'radio': {
|
||||
var possible_answers = [];
|
||||
for (answer in answers) {
|
||||
if (incorrect.includes(answers[answer].sorry_value) == false) {
|
||||
possible_answers.push(answer);
|
||||
}
|
||||
}
|
||||
}
|
||||
chosen_answer = Math.floor(Math.random() * possible_answers.length);
|
||||
answers[possible_answers[chosen_answer]].click();
|
||||
} break;
|
||||
case 'checkbox': {
|
||||
var combs = comb(charset.slice(0, answers.length), incorrect);
|
||||
var pick = combs[Math.floor(Math.random() * combs.length)];
|
||||
for (i = 0; i < answers.length; i++) {
|
||||
if(pick.includes(answers[i].sorry_value)) {
|
||||
answers[i].click();
|
||||
chosen_answer = Math.floor(Math.random() * possible_answers.length);
|
||||
answers[possible_answers[chosen_answer]].click();
|
||||
} break;
|
||||
case 'checkbox': {
|
||||
var combs = comb(charset.slice(0, answers.length), incorrect);
|
||||
var pick = combs[Math.floor(Math.random() * combs.length)];
|
||||
for (i = 0; i < answers.length; i++) {
|
||||
if(pick.includes(answers[i].sorry_value)) {
|
||||
answers[i].click();
|
||||
}
|
||||
}
|
||||
}
|
||||
} break;
|
||||
} break;
|
||||
}
|
||||
}
|
||||
} else if (auto_answer == labels.auto_answer_first) {
|
||||
Object.values(sorted_objects_value)[0].click();
|
||||
|
@ -895,6 +910,11 @@ function result_page_handler() {
|
|||
}
|
||||
GM_setValue('fetched_data', {});
|
||||
GM_setValue('new_answer_f', false);
|
||||
var greed = config.get('auto_answer_not_greedy');
|
||||
if (greed < 0) {
|
||||
greed = 99999;
|
||||
}
|
||||
GM_setValue('greed', greed);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue