<component name="ChangeListManager">
<list default="true" id="352ce63a-b52a-41a2-979b-becda7920939" name="Default" comment=".">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/scripts/lib/shield.php" beforeDir="false" afterPath="$PROJECT_DIR$/scripts/lib/shield.php" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/servers/logcat.php" beforeDir="false" afterPath="$PROJECT_DIR$/servers/logcat.php" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/config/sdb.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/sdb.php" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/scripts/lib/tmdb.php" beforeDir="false" afterPath="$PROJECT_DIR$/scripts/lib/tmdb.php" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
</component>
<component name="RecentsManager">
- <key name="MoveFile.RECENT_KEYS">
- <recent name="T:\Drive\Works\home\images\rooms" />
- <recent name="T:\Drive\Works\home\js\mmenu" />
- <recent name="T:\Drive\Works\home\tools\xplanet" />
- <recent name="T:\Drive\Works\home\style\fonts\webfonts" />
- <recent name="T:\Drive\Works\home\style\fonts\webfonts\520" />
- </key>
<key name="CopyFile.RECENT_KEYS">
<recent name="T:\Drive\Works\home\style\fonts\fontawesome" />
<recent name="T:\Drive\Works\home" />
<recent name="T:\Drive\Works\home\config" />
<recent name="T:\Drive\Works\home\images\backgrounds" />
</key>
+ <key name="MoveFile.RECENT_KEYS">
+ <recent name="T:\Drive\Works\home\images\rooms" />
+ <recent name="T:\Drive\Works\home\js\mmenu" />
+ <recent name="T:\Drive\Works\home\tools\xplanet" />
+ <recent name="T:\Drive\Works\home\style\fonts\webfonts" />
+ <recent name="T:\Drive\Works\home\style\fonts\webfonts\520" />
+ </key>
</component>
<component name="RunManager">
<configuration default="true" type="Applet">
<workItem from="1605087787424" duration="33487000" />
<workItem from="1605261347643" duration="1199000" />
<workItem from="1605342171398" duration="4613000" />
- <workItem from="1605355486465" duration="12745000" />
- </task>
- <task id="LOCAL-00344" summary=".">
- <created>1602145314496</created>
- <option name="number" value="00344" />
- <option name="presentableId" value="LOCAL-00344" />
- <option name="project" value="LOCAL" />
- <updated>1602145314496</updated>
+ <workItem from="1605355486465" duration="15137000" />
</task>
<task id="LOCAL-00345" summary=".">
<created>1602171129423</created>
<option name="project" value="LOCAL" />
<updated>1605365556377</updated>
</task>
- <option name="localTasksCounter" value="393" />
+ <task id="LOCAL-00393" summary=".">
+ <created>1605428228628</created>
+ <option name="number" value="00393" />
+ <option name="presentableId" value="LOCAL-00393" />
+ <option name="project" value="LOCAL" />
+ <updated>1605428228628</updated>
+ </task>
+ <option name="localTasksCounter" value="394" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<screen x="0" y="0" width="1707" height="920" />
</state>
<state x="740" y="229" key="#com.jetbrains.php.refactoring.extractMethod.PhpExtractMethodDialog#function0/0.0.1707.920@0.0.1707.920" timestamp="1604146905948" />
- <state x="198" y="0" width="737" height="502" key="CommitChangelistDialog2" timestamp="1605365550578">
+ <state x="198" y="0" width="737" height="502" key="CommitChangelistDialog2" timestamp="1605428224051">
<screen x="0" y="0" width="2560" height="1040" />
</state>
<state x="132" y="0" width="737" height="502" key="CommitChangelistDialog2/0.0.1707.920@0.0.1707.920" timestamp="1605086955514" />
<state x="701" y="75" key="CommitChangelistDialog2/0.0.1920.1160@0.0.1920.1160" timestamp="1605188136787" />
- <state x="198" y="0" width="745" height="567" key="CommitChangelistDialog2/0.0.2560.1040@0.0.2560.1040" timestamp="1605365550578" />
+ <state x="198" y="0" width="745" height="567" key="CommitChangelistDialog2/0.0.2560.1040@0.0.2560.1040" timestamp="1605428224051" />
<state x="952" y="244" key="FileChooserDialogImpl" timestamp="1605104496549">
<screen x="0" y="0" width="2560" height="1040" />
</state>
$e = explode(':', $tvShow['dir']);
if ($e[0] === 'netflix') {
- $res['shortcuts'][] = ['label' => $tvShow['data']['name'], 'type' => 'netflix', 'url' => '/scripts/netflix.php?id='.$e[1], 'poster' => $this->_poster($tvShow['data']['poster_path'])];
+ $res['shortcuts'][] = ['label' => $tvShow['data']['name'], 'type' => 'netflix', 'url' => '/scripts/netflix.php?id=' . $e[1], 'poster' => $this->_poster($tvShow['data']['poster_path'])];
return;
}
continue;
}
$path = str_replace('.tmdb.id', '', $f->getPathname());
+ if (!file_exists($path)) {
+ unlink($f->getPathname());
+ continue;
+ }
$mtime = 0;
if (file_exists($path)) {
$mtime = filemtime($path);
protected function _firstLetter($title)
{
- $res = mb_substr($title, 0, 1);
- $res = iconv('utf8', "ascii//TRANSLIT", $res);
+ $res = $this->remove_accents($title);
+ $res = trim($res, '\'');
+ $res = mb_substr($res, 0, 1);
$res = mb_strtoupper($res);
$res = preg_replace('|\d|', '#', $res);
return $res;
}
+ protected function remove_accents($string)
+ {
+ if (!preg_match('/[\x80-\xff]/', $string))
+ return $string;
+
+ $chars = array(
+ // Decompositions for Latin-1 Supplement
+ chr(195) . chr(128) => 'A', chr(195) . chr(129) => 'A',
+ chr(195) . chr(130) => 'A', chr(195) . chr(131) => 'A',
+ chr(195) . chr(132) => 'A', chr(195) . chr(133) => 'A',
+ chr(195) . chr(135) => 'C', chr(195) . chr(136) => 'E',
+ chr(195) . chr(137) => 'E', chr(195) . chr(138) => 'E',
+ chr(195) . chr(139) => 'E', chr(195) . chr(140) => 'I',
+ chr(195) . chr(141) => 'I', chr(195) . chr(142) => 'I',
+ chr(195) . chr(143) => 'I', chr(195) . chr(145) => 'N',
+ chr(195) . chr(146) => 'O', chr(195) . chr(147) => 'O',
+ chr(195) . chr(148) => 'O', chr(195) . chr(149) => 'O',
+ chr(195) . chr(150) => 'O', chr(195) . chr(153) => 'U',
+ chr(195) . chr(154) => 'U', chr(195) . chr(155) => 'U',
+ chr(195) . chr(156) => 'U', chr(195) . chr(157) => 'Y',
+ chr(195) . chr(159) => 's', chr(195) . chr(160) => 'a',
+ chr(195) . chr(161) => 'a', chr(195) . chr(162) => 'a',
+ chr(195) . chr(163) => 'a', chr(195) . chr(164) => 'a',
+ chr(195) . chr(165) => 'a', chr(195) . chr(167) => 'c',
+ chr(195) . chr(168) => 'e', chr(195) . chr(169) => 'e',
+ chr(195) . chr(170) => 'e', chr(195) . chr(171) => 'e',
+ chr(195) . chr(172) => 'i', chr(195) . chr(173) => 'i',
+ chr(195) . chr(174) => 'i', chr(195) . chr(175) => 'i',
+ chr(195) . chr(177) => 'n', chr(195) . chr(178) => 'o',
+ chr(195) . chr(179) => 'o', chr(195) . chr(180) => 'o',
+ chr(195) . chr(181) => 'o', chr(195) . chr(182) => 'o',
+ chr(195) . chr(182) => 'o', chr(195) . chr(185) => 'u',
+ chr(195) . chr(186) => 'u', chr(195) . chr(187) => 'u',
+ chr(195) . chr(188) => 'u', chr(195) . chr(189) => 'y',
+ chr(195) . chr(191) => 'y',
+ // Decompositions for Latin Extended-A
+ chr(196) . chr(128) => 'A', chr(196) . chr(129) => 'a',
+ chr(196) . chr(130) => 'A', chr(196) . chr(131) => 'a',
+ chr(196) . chr(132) => 'A', chr(196) . chr(133) => 'a',
+ chr(196) . chr(134) => 'C', chr(196) . chr(135) => 'c',
+ chr(196) . chr(136) => 'C', chr(196) . chr(137) => 'c',
+ chr(196) . chr(138) => 'C', chr(196) . chr(139) => 'c',
+ chr(196) . chr(140) => 'C', chr(196) . chr(141) => 'c',
+ chr(196) . chr(142) => 'D', chr(196) . chr(143) => 'd',
+ chr(196) . chr(144) => 'D', chr(196) . chr(145) => 'd',
+ chr(196) . chr(146) => 'E', chr(196) . chr(147) => 'e',
+ chr(196) . chr(148) => 'E', chr(196) . chr(149) => 'e',
+ chr(196) . chr(150) => 'E', chr(196) . chr(151) => 'e',
+ chr(196) . chr(152) => 'E', chr(196) . chr(153) => 'e',
+ chr(196) . chr(154) => 'E', chr(196) . chr(155) => 'e',
+ chr(196) . chr(156) => 'G', chr(196) . chr(157) => 'g',
+ chr(196) . chr(158) => 'G', chr(196) . chr(159) => 'g',
+ chr(196) . chr(160) => 'G', chr(196) . chr(161) => 'g',
+ chr(196) . chr(162) => 'G', chr(196) . chr(163) => 'g',
+ chr(196) . chr(164) => 'H', chr(196) . chr(165) => 'h',
+ chr(196) . chr(166) => 'H', chr(196) . chr(167) => 'h',
+ chr(196) . chr(168) => 'I', chr(196) . chr(169) => 'i',
+ chr(196) . chr(170) => 'I', chr(196) . chr(171) => 'i',
+ chr(196) . chr(172) => 'I', chr(196) . chr(173) => 'i',
+ chr(196) . chr(174) => 'I', chr(196) . chr(175) => 'i',
+ chr(196) . chr(176) => 'I', chr(196) . chr(177) => 'i',
+ chr(196) . chr(178) => 'IJ', chr(196) . chr(179) => 'ij',
+ chr(196) . chr(180) => 'J', chr(196) . chr(181) => 'j',
+ chr(196) . chr(182) => 'K', chr(196) . chr(183) => 'k',
+ chr(196) . chr(184) => 'k', chr(196) . chr(185) => 'L',
+ chr(196) . chr(186) => 'l', chr(196) . chr(187) => 'L',
+ chr(196) . chr(188) => 'l', chr(196) . chr(189) => 'L',
+ chr(196) . chr(190) => 'l', chr(196) . chr(191) => 'L',
+ chr(197) . chr(128) => 'l', chr(197) . chr(129) => 'L',
+ chr(197) . chr(130) => 'l', chr(197) . chr(131) => 'N',
+ chr(197) . chr(132) => 'n', chr(197) . chr(133) => 'N',
+ chr(197) . chr(134) => 'n', chr(197) . chr(135) => 'N',
+ chr(197) . chr(136) => 'n', chr(197) . chr(137) => 'N',
+ chr(197) . chr(138) => 'n', chr(197) . chr(139) => 'N',
+ chr(197) . chr(140) => 'O', chr(197) . chr(141) => 'o',
+ chr(197) . chr(142) => 'O', chr(197) . chr(143) => 'o',
+ chr(197) . chr(144) => 'O', chr(197) . chr(145) => 'o',
+ chr(197) . chr(146) => 'OE', chr(197) . chr(147) => 'oe',
+ chr(197) . chr(148) => 'R', chr(197) . chr(149) => 'r',
+ chr(197) . chr(150) => 'R', chr(197) . chr(151) => 'r',
+ chr(197) . chr(152) => 'R', chr(197) . chr(153) => 'r',
+ chr(197) . chr(154) => 'S', chr(197) . chr(155) => 's',
+ chr(197) . chr(156) => 'S', chr(197) . chr(157) => 's',
+ chr(197) . chr(158) => 'S', chr(197) . chr(159) => 's',
+ chr(197) . chr(160) => 'S', chr(197) . chr(161) => 's',
+ chr(197) . chr(162) => 'T', chr(197) . chr(163) => 't',
+ chr(197) . chr(164) => 'T', chr(197) . chr(165) => 't',
+ chr(197) . chr(166) => 'T', chr(197) . chr(167) => 't',
+ chr(197) . chr(168) => 'U', chr(197) . chr(169) => 'u',
+ chr(197) . chr(170) => 'U', chr(197) . chr(171) => 'u',
+ chr(197) . chr(172) => 'U', chr(197) . chr(173) => 'u',
+ chr(197) . chr(174) => 'U', chr(197) . chr(175) => 'u',
+ chr(197) . chr(176) => 'U', chr(197) . chr(177) => 'u',
+ chr(197) . chr(178) => 'U', chr(197) . chr(179) => 'u',
+ chr(197) . chr(180) => 'W', chr(197) . chr(181) => 'w',
+ chr(197) . chr(182) => 'Y', chr(197) . chr(183) => 'y',
+ chr(197) . chr(184) => 'Y', chr(197) . chr(185) => 'Z',
+ chr(197) . chr(186) => 'z', chr(197) . chr(187) => 'Z',
+ chr(197) . chr(188) => 'z', chr(197) . chr(189) => 'Z',
+ chr(197) . chr(190) => 'z', chr(197) . chr(191) => 's'
+ );
+
+ $string = strtr($string, $chars);
+
+ return $string;
+ }
+
protected function _makeSub($list, $subbase, $parentName, $size = null)
{
$res = ['shortcuts' => [], 'subs' => []];