]> _ Git - tortuga-home.git/commitdiff
.
authorVincent <vincent@enhydra.fr>
Sun, 15 Nov 2020 09:15:01 +0000 (10:15 +0100)
committerVincent <vincent@enhydra.fr>
Sun, 15 Nov 2020 09:15:01 +0000 (10:15 +0100)
.idea/workspace.xml
config/sdb.php
scripts/lib/tmdb.php

index 5705bf080cfa807080fad92416aa1639af891525..b8c2fad76980ef763b9c603a96c75adbcab44aef 100644 (file)
@@ -3,8 +3,8 @@
   <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>
index 6380330e31b79ffb5f6ca0eafaf6071a50ea2b33..bbc166ea82451eaa251e382f0c527a082ed059ab 100644 (file)
@@ -15,7 +15,7 @@ config('HIDEMASK_TIMEOUT',250);
 if (DISPLAYINTERFACE) {
     $c = sdb();
     $shortcuts['lights'] = $c['all'];
-    $nav=['home','lights','music','media','remote','coffee','switch','settings','alert','off'];
+    $nav=['home','lights','music','media','remote','switch','settings','alert','off'];
 
        include_once ROOT . '/config/music.php';
 
index 4681b62ae4a5cb28fc1b9c38618814356548a8f5..1e7d38b66bca6edb30cdd231e399fc2cdbf7756b 100644 (file)
@@ -201,7 +201,7 @@ class tvShowLibrary extends mediaLibrary
 
         $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;
         }
 
@@ -370,6 +370,10 @@ class moviesLibrary extends mediaLibrary
                     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);
@@ -427,14 +431,122 @@ class moviesLibrary extends mediaLibrary
 
     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' => []];