Skip to content

Commit 2e25107

Browse files
Merge branch 'subtitles' into youtube-dl
2 parents 1959175 + a83d9a0 commit 2e25107

39 files changed

Lines changed: 1705 additions & 1051 deletions

‎.dockerignore‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
docker/*
55
# Documentation
66
docs/*
7+
!docs/**/index.html
8+
!docs/**/info.html
79
# NPM, for debugging only
810
node_modules/*
911
# Phive products
@@ -13,11 +15,12 @@ tools/*
1315
# phpDocumentor cache
1416
.phpdoc/*
1517

16-
*.md
1718
.dockerignore
1819
.git
1920
.gitignore
21+
2022
# MarkDown and PHP documentation generation
2123
Doxyfile
24+
2225
# Media files for LWT
2326
media/*

‎api.php‎

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,16 @@
1414
require_once __DIR__ . '/inc/ajax_edit_impr_text.php';
1515

1616

17+
/**
18+
* @var string Version of this current LWT API.
19+
*/
20+
define('LWT_API_VERSION', "0.1.1");
21+
22+
/**
23+
* @var string Date of the last released change of the LWT API.
24+
*/
25+
define('LWT_API_RELEASE_DATE', "2023-12-29");
26+
1727
/**
1828
* Send JSON response and exit.
1929
*
@@ -127,8 +137,8 @@ function endpoint_exits($method, $requestUri)
127137
function rest_api_version($get_req): array
128138
{
129139
return array(
130-
"version" => "0.1.1",
131-
"release_date" => "2023-12-29"
140+
"version" => LWT_API_VERSION,
141+
"release_date" => LWT_API_RELEASE_DATE
132142
);
133143
}
134144

‎bulk_translate_words.php‎

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,44 @@ function bulk_do_content($tid, $sl, $tl, $pos): void
168168
WBLINK3 = '<?php echo $wb3; ?>';
169169
$('h3,h4,title').addClass('notranslate');
170170

171+
function clickDictionary() {
172+
if ($(this).hasClass( "dict1" ))
173+
WBLINK = WBLINK1;
174+
if ($(this).hasClass( "dict2" ))
175+
WBLINK = WBLINK2;
176+
if ($(this).hasClass( "dict3" ))
177+
WBLINK = WBLINK3;
178+
let dict_link = WBLINK;
179+
let popup;
180+
if (dict_link.startsWith('*')) {
181+
popup = true;
182+
dict_link = dict_link.substring(1);
183+
}
184+
try {
185+
let final_url = new URL(dict_link);
186+
popup = popup || final_url.searchParams.has("lwt_popup");
187+
} catch (err) {
188+
if (!(err instanceof TypeError)) {
189+
throw err;
190+
}
191+
}
192+
if (popup) {
193+
owin(createTheDictUrl(
194+
dict_link, $(this).parent().prev().text()
195+
));
196+
} else {
197+
window.parent.frames['ru'].location.href = createTheDictUrl(
198+
dict_link, $(this).parent().prev().text()
199+
);
200+
}
201+
$('[name="WoTranslation"]')
202+
.attr('name',$('[name="WoTranslation"]')
203+
.attr('data_name'));
204+
const el = $(this).parent().parent().next().children();
205+
el.attr('data_name', el.attr('name'));
206+
el.attr('name','WoTranslation');
207+
}
208+
171209
const bulk_interactions = function() {
172210
$('[name="form1"]').submit(function() {
173211
$('[name="WoTranslation"]').attr('name',$('[name="WoTranslation"]')
@@ -179,43 +217,7 @@ function bulk_do_content($tid, $sl, $tl, $pos): void
179217
$('td').on(
180218
'click',
181219
'span.dict1, span.dict2, span.dict3',
182-
function() {
183-
if ($(this).hasClass( "dict1" ))
184-
WBLINK = WBLINK1;
185-
if ($(this).hasClass( "dict2" ))
186-
WBLINK = WBLINK2;
187-
if ($(this).hasClass( "dict3" ))
188-
WBLINK = WBLINK3;
189-
let dict_link = WBLINK;
190-
let popup;
191-
if (dict_link.startsWith('*')) {
192-
popup = true;
193-
dict_link = dict_link.substring(1);
194-
}
195-
try {
196-
let final_url = new URL(dict_link);
197-
popup = popup || final_url.searchParams.has("lwt_popup");
198-
} catch (err) {
199-
if (!(err instanceof TypeError)) {
200-
throw err;
201-
}
202-
}
203-
if (popup) {
204-
owin(createTheDictUrl(
205-
dict_link, $(this).parent().prev().text()
206-
));
207-
} else {
208-
window.parent.frames['ru'].location.href = createTheDictUrl(
209-
dict_link, $(this).parent().prev().text()
210-
);
211-
}
212-
$('[name="WoTranslation"]')
213-
.attr('name',$('[name="WoTranslation"]')
214-
.attr('data_name'));
215-
el = $(this).parent().parent().next().children();
216-
el.attr('data_name', el.attr('name'));
217-
el.attr('name','WoTranslation');
218-
}
220+
clickDictionary
219221
).on(
220222
'click',
221223
'.del_trans',

‎check_text.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ function change_textboxes_language() {
7474
$('#TxText').attr('lang', language_data[lid]);
7575
}
7676

77-
$(document).ready(ask_before_exiting);
77+
$(document).ready(lwt_form_check.askBeforeExit);
7878
$(document).ready(change_textboxes_language);
7979
</script>
8080
<form class="validate" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

‎database_wizard.php‎

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -140,16 +140,18 @@ function writeToFile($conn)
140140
function doOperation($op)
141141
{
142142
$message = null;
143-
$dbname = null;
144-
$passwd = null;
145143
$server = null;
146-
$socket = null;
147144
$userid = null;
145+
$passwd = null;
146+
$dbname = null;
147+
$socket = null;
148148
if ($op == "Autocomplete") {
149-
$_SERVER['SERVER_ADDR'];
150-
$_SERVER['SERVER_NAME'];
149+
$server = (string) $_SERVER['SERVER_ADDR'];
150+
$userid = "";
151+
$passwd = "";
152+
$dbname = (string) $_SERVER['SERVER_NAME'];
153+
$socket = "";
151154
} else if ($op == "Check") {
152-
//require_once 'inc/database_connect.php';
153155
$server = getreq("server");
154156
$userid = getreq("userid");
155157
$passwd = getreq("passwd");
@@ -183,11 +185,11 @@ function doOperation($op)
183185
}
184186
}
185187
} else if ($op == "Change") {
186-
getreq("server");
187-
getreq("userid");
188-
getreq("passwd");
189-
getreq("dbname");
190-
getreq("socket");
188+
$server = getreq("server");
189+
$userid = getreq("userid");
190+
$passwd = getreq("passwd");
191+
$dbname = getreq("dbname");
192+
$socket = getreq("socket");
191193
}
192194
$conn = new Database_Connection(
193195
$server, $userid, $passwd, $dbname, $socket

‎db/schema/baseline.sql‎

Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
-- Basefile to install LWT
2+
3+
CREATE TABLE IF NOT EXISTS archivedtexts (
4+
AtID smallint(5) unsigned NOT NULL AUTO_INCREMENT,
5+
AtLgID tinyint(3) unsigned NOT NULL,
6+
AtTitle varchar(200) NOT NULL,
7+
AtText text NOT NULL,
8+
AtAnnotatedText longtext NOT NULL,
9+
AtAudioURI varchar(200) DEFAULT NULL,
10+
AtSourceURI varchar(1000) DEFAULT NULL,
11+
PRIMARY KEY (AtID),
12+
KEY AtLgID (AtLgID),
13+
KEY AtLgIDSourceURI (AtSourceURI(20),AtLgID)
14+
)
15+
ENGINE=MyISAM DEFAULT CHARSET=utf8;
16+
17+
CREATE TABLE IF NOT EXISTS languages (
18+
LgID tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
19+
LgName varchar(40) NOT NULL,
20+
LgDict1URI varchar(200) NOT NULL,
21+
LgDict2URI varchar(200) DEFAULT NULL,
22+
LgGoogleTranslateURI varchar(200) DEFAULT NULL,
23+
LgExportTemplate varchar(1000) DEFAULT NULL,
24+
LgTextSize smallint(5) unsigned NOT NULL DEFAULT '100',
25+
LgCharacterSubstitutions varchar(500) NOT NULL,
26+
LgRegexpSplitSentences varchar(500) NOT NULL,
27+
LgExceptionsSplitSentences varchar(500) NOT NULL,
28+
LgRegexpWordCharacters varchar(500) NOT NULL,
29+
LgRemoveSpaces tinyint(1) unsigned NOT NULL DEFAULT '0',
30+
LgSplitEachChar tinyint(1) unsigned NOT NULL DEFAULT '0',
31+
LgRightToLeft tinyint(1) unsigned NOT NULL DEFAULT '0',
32+
PRIMARY KEY (LgID),
33+
UNIQUE KEY LgName (LgName)
34+
)
35+
ENGINE=MyISAM DEFAULT CHARSET=utf8;
36+
37+
CREATE TABLE IF NOT EXISTS sentences (
38+
SeID mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
39+
SeLgID tinyint(3) unsigned NOT NULL,
40+
SeTxID smallint(5) unsigned NOT NULL,
41+
SeOrder smallint(5) unsigned NOT NULL,
42+
SeText text, SeFirstPos smallint(5) unsigned NOT NULL,
43+
SeStartSec int(11) unsigned NOT NULL DEFAULT '0',
44+
SeEndSec int(11) unsigned NOT NULL DEFAULT '0',
45+
PRIMARY KEY (SeID),
46+
KEY SeLgID (SeLgID),
47+
KEY SeTxID (SeTxID),
48+
KEY SeOrder (SeOrder)
49+
)
50+
ENGINE=MyISAM DEFAULT CHARSET=utf8;
51+
52+
CREATE TABLE IF NOT EXISTS settings (
53+
StKey varchar(40) NOT NULL,
54+
StValue varchar(40) DEFAULT NULL,
55+
PRIMARY KEY (StKey)
56+
)
57+
ENGINE=MyISAM DEFAULT CHARSET=utf8;
58+
59+
CREATE TABLE IF NOT EXISTS textitems2 (
60+
Ti2WoID mediumint(8) unsigned NOT NULL,
61+
Ti2LgID tinyint(3) unsigned NOT NULL,
62+
Ti2TxID smallint(5) unsigned NOT NULL,
63+
Ti2SeID mediumint(8) unsigned NOT NULL,
64+
Ti2Order smallint(5) unsigned NOT NULL,
65+
Ti2WordCount tinyint(3) unsigned NOT NULL,
66+
Ti2Text varchar(250) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
67+
PRIMARY KEY (Ti2TxID,Ti2Order,Ti2WordCount), KEY Ti2WoID (Ti2WoID)
68+
)
69+
ENGINE=MyISAM DEFAULT CHARSET=utf8;
70+
71+
CREATE TABLE IF NOT EXISTS temptextitems (
72+
TiCount smallint(5) unsigned NOT NULL,
73+
TiSeID mediumint(8) unsigned NOT NULL,
74+
TiOrder smallint(5) unsigned NOT NULL,
75+
TiWordCount tinyint(3) unsigned NOT NULL,
76+
TiText varchar(250) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
77+
) ENGINE=MEMORY DEFAULT CHARSET=utf8;
78+
79+
CREATE TABLE IF NOT EXISTS tempwords (
80+
WoText varchar(250) DEFAULT NULL,
81+
WoTextLC varchar(250) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
82+
WoTranslation varchar(500) NOT NULL DEFAULT '*',
83+
WoRomanization varchar(100) DEFAULT NULL,
84+
WoSentence varchar(1000) DEFAULT NULL,
85+
WoTaglist varchar(255) DEFAULT NULL,
86+
PRIMARY KEY(WoTextLC)
87+
) ENGINE=MEMORY DEFAULT CHARSET=utf8;
88+
89+
CREATE TABLE IF NOT EXISTS texts (
90+
TxID smallint(5) unsigned NOT NULL AUTO_INCREMENT,
91+
TxLgID tinyint(3) unsigned NOT NULL,
92+
TxTitle varchar(200) NOT NULL,
93+
TxText text NOT NULL,
94+
TxAnnotatedText longtext NOT NULL,
95+
TxAudioURI varchar(200) DEFAULT NULL,
96+
TxSourceURI varchar(1000) DEFAULT NULL,
97+
TxPosition smallint(5) DEFAULT 0,
98+
TxAudioPosition float DEFAULT 0,
99+
PRIMARY KEY (TxID),
100+
KEY TxLgID (TxLgID),
101+
KEY TxLgIDSourceURI (TxSourceURI(20),TxLgID)
102+
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
103+
104+
CREATE TABLE IF NOT EXISTS words (
105+
WoID mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
106+
WoLgID tinyint(3) unsigned NOT NULL,
107+
WoText varchar(250) NOT NULL,
108+
WoTextLC varchar(250) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
109+
WoStatus tinyint(4) NOT NULL,
110+
WoTranslation varchar(500) NOT NULL DEFAULT '*',
111+
WoRomanization varchar(100) DEFAULT NULL,
112+
WoSentence varchar(1000) DEFAULT NULL,
113+
WoWordCount tinyint(3) unsigned NOT NULL DEFAULT 0,
114+
WoCreated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
115+
WoStatusChanged timestamp NOT NULL DEFAULT '1970-01-01 12:00:00',
116+
WoTodayScore double NOT NULL DEFAULT '0',
117+
WoTomorrowScore double NOT NULL DEFAULT '0',
118+
WoRandom double NOT NULL DEFAULT '0',
119+
PRIMARY KEY (WoID),
120+
UNIQUE KEY WoTextLCLgID (WoTextLC,WoLgID),
121+
KEY WoLgID (WoLgID),
122+
KEY WoStatus (WoStatus),
123+
KEY WoTranslation (WoTranslation(20)),
124+
KEY WoCreated (WoCreated),
125+
KEY WoStatusChanged (WoStatusChanged),
126+
KEY WoWordCount(WoWordCount),
127+
KEY WoTodayScore (WoTodayScore),
128+
KEY WoTomorrowScore (WoTomorrowScore),
129+
KEY WoRandom (WoRandom)
130+
)
131+
ENGINE=MyISAM DEFAULT CHARSET=utf8;
132+
133+
CREATE TABLE IF NOT EXISTS tags (
134+
TgID smallint(5) unsigned NOT NULL AUTO_INCREMENT,
135+
TgText varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
136+
TgComment varchar(200) NOT NULL DEFAULT '',
137+
PRIMARY KEY (TgID),
138+
UNIQUE KEY TgText (TgText)
139+
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
140+
141+
142+
CREATE TABLE IF NOT EXISTS wordtags (
143+
WtWoID mediumint(8) unsigned NOT NULL,
144+
WtTgID smallint(5) unsigned NOT NULL,
145+
PRIMARY KEY (WtWoID,WtTgID),
146+
KEY WtTgID (WtTgID)
147+
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
148+
149+
CREATE TABLE IF NOT EXISTS tags2 (
150+
T2ID smallint(5) unsigned NOT NULL AUTO_INCREMENT,
151+
T2Text varchar(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
152+
T2Comment varchar(200) NOT NULL DEFAULT '',
153+
PRIMARY KEY (T2ID),
154+
UNIQUE KEY T2Text (T2Text)
155+
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
156+
157+
CREATE TABLE IF NOT EXISTS texttags (
158+
TtTxID smallint(5) unsigned NOT NULL,
159+
TtT2ID smallint(5) unsigned NOT NULL,
160+
PRIMARY KEY (TtTxID,TtT2ID), KEY TtT2ID (TtT2ID)
161+
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
162+
163+
CREATE TABLE IF NOT EXISTS newsfeeds (
164+
NfID tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
165+
NfLgID tinyint(3) unsigned NOT NULL,
166+
NfName varchar(40) NOT NULL,
167+
NfSourceURI varchar(200) NOT NULL,
168+
NfArticleSectionTags text NOT NULL,
169+
NfFilterTags text NOT NULL,
170+
NfUpdate int(12) unsigned NOT NULL,
171+
NfOptions varchar(200) NOT NULL,
172+
PRIMARY KEY (NfID),
173+
KEY NfLgID (NfLgID),
174+
KEY NfUpdate (NfUpdate)
175+
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
176+
177+
CREATE TABLE IF NOT EXISTS feedlinks (
178+
FlID mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
179+
FlTitle varchar(200) NOT NULL,
180+
FlLink varchar(400) NOT NULL,
181+
FlDescription text NOT NULL,
182+
FlDate datetime NOT NULL,
183+
FlAudio varchar(200) NOT NULL,
184+
FlText longtext NOT NULL,
185+
FlNfID tinyint(3) unsigned NOT NULL,
186+
PRIMARY KEY (FlID),
187+
KEY FlLink (FlLink),
188+
KEY FlDate (FlDate),
189+
UNIQUE KEY FlTitle (FlNfID,FlTitle)
190+
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
191+
192+
CREATE TABLE IF NOT EXISTS archtexttags (
193+
AgAtID smallint(5) unsigned NOT NULL,
194+
AgT2ID smallint(5) unsigned NOT NULL,
195+
PRIMARY KEY (AgAtID,AgT2ID),
196+
KEY AgT2ID (AgT2ID)
197+
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

‎do_feeds.php‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -658,6 +658,7 @@ function dummy_function_2($currentlang, $currentfeed): void
658658

659659
function do_page(): void
660660
{
661+
session_start();
661662
$currentlang = validateLang(
662663
(string) processDBParam("filterlang", 'currentlanguage', '', false)
663664
);

0 commit comments

Comments
 (0)