diff --git a/.env b/.env new file mode 100644 index 0000000..88848a5 --- /dev/null +++ b/.env @@ -0,0 +1,3 @@ +### Variables d'environnement + +LOG_FILE="/tmp/g1sms.log" diff --git a/G1Tag.png b/G1Tag.png deleted file mode 100755 index 3ae4e3b..0000000 Binary files a/G1Tag.png and /dev/null differ diff --git a/GSM_POWERKEY.py b/GSM_POWERKEY.py deleted file mode 100755 index 037387e..0000000 --- a/GSM_POWERKEY.py +++ /dev/null @@ -1,10 +0,0 @@ -import RPi.GPIO as GPIO -import time -GPIO.setmode(GPIO.BOARD) -GPIO.setup(7, GPIO.OUT) -while True: - GPIO.output(7, GPIO.LOW) - time.sleep(4) - GPIO.output(7, GPIO.HIGH) - break -GPIO.cleanup() diff --git a/GSM_powerkey.sh b/GSM_powerkey.sh deleted file mode 100755 index 3615018..0000000 --- a/GSM_powerkey.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -if [ ! -e /sys/class/gpio/gpio4 ]; then - echo "File exists." - echo "4" > /sys/class/gpio/export -fi -echo "out" > /sys/class/gpio/gpio4/direction -echo "0" > /sys/class/gpio/gpio4/value -sleep 2 -echo "1" > /sys/class/gpio/gpio4/value diff --git a/_CopyLaRadio/bip.wav b/_CopyLaRadio/bip.wav deleted file mode 100644 index 1028cd4..0000000 Binary files a/_CopyLaRadio/bip.wav and /dev/null differ diff --git a/_CopyLaRadio/copy.sh b/_CopyLaRadio/copy.sh deleted file mode 100755 index 8391a86..0000000 --- a/_CopyLaRadio/copy.sh +++ /dev/null @@ -1,88 +0,0 @@ -#!/bin/bash - -# Clean /tmp/ytdl.list -#echo > /tmp/ytdl.list - -function replace_accents (){ -INPUT="$1" -declare -a acc -declare -a noa -acc=('$' 'è' 'ê' 'é' 'À' 'Á' 'Â' 'Ã' 'Ä' 'Å' 'Æ' 'Ç' 'È' 'É' 'Ê' 'Ë' 'Ì' 'Í' 'Î' 'Ï' 'Ð' 'Ñ' 'Ò' 'Ó' 'Ô' 'Õ' 'Ö' 'Ø' 'Ù' 'Ú' 'Û' 'Ü' 'Ý' 'ß' 'à' 'á' 'â' 'ã' 'ä' 'å' 'æ' 'ç' 'è' 'é' 'ê' 'ë' 'ì' 'í' 'î' 'ï' 'ñ' 'ò' 'ó' 'ô' 'õ' 'ö' 'ø' 'ù' 'ú' 'û' 'ü' 'ý' 'ÿ' 'Ā' 'ā' 'Ă' 'ă' 'Ą' 'ą' 'Ć' 'ć' 'Ĉ' 'ĉ' 'Ċ' 'ċ' 'Č' 'č' 'Ď' 'ď' 'Đ' 'đ' 'Ē' 'ē' 'Ĕ' 'ĕ' 'Ė' 'ė' 'Ę' 'ę' 'Ě' 'ě' 'Ĝ' 'ĝ' 'Ğ' 'ğ' 'Ġ' 'ġ' 'Ģ' 'ģ' 'Ĥ' 'ĥ' 'Ħ' 'ħ' 'Ĩ' 'ĩ' 'Ī' 'ī' 'Ĭ' 'ĭ' 'Į' 'į' 'İ' 'ı' 'IJ' 'ij' 'Ĵ' 'ĵ' 'Ķ' 'ķ' 'Ĺ' 'ĺ' 'Ļ' 'ļ' 'Ľ' 'ľ' 'Ŀ' 'ŀ' 'Ł' 'ł' 'Ń' 'ń' 'Ņ' 'ņ' 'Ň' 'ň' 'ʼn' 'Ō' 'ō' 'Ŏ' 'ŏ' 'Ő' 'ő' 'Œ' 'œ' 'Ŕ' 'ŕ' 'Ŗ' 'ŗ' 'Ř' 'ř' 'Ś' 'ś' 'Ŝ' 'ŝ' 'Ş' 'ş' 'Š' 'š' 'Ţ' 'ţ' 'Ť' 'ť' 'Ŧ' 'ŧ' 'Ũ' 'ũ' 'Ū' 'ū' 'Ŭ' 'ŭ' 'Ů' 'ů' 'Ű' 'ű' 'Ų' 'ų' 'Ŵ' 'ŵ' 'Ŷ' 'ŷ' 'Ÿ' 'Ź' 'ź' 'Ż' 'ż' 'Ž' 'ž' 'ſ' 'ƒ' 'Ơ' 'ơ' 'Ư' 'ư' 'Ǎ' 'ǎ' 'Ǐ' 'ǐ' 'Ǒ' 'ǒ' 'Ǔ' 'ǔ' 'Ǖ' 'ǖ' 'Ǘ' 'ǘ' 'Ǚ' 'ǚ' 'Ǜ' 'ǜ' 'Ǻ' 'ǻ' 'Ǽ' 'ǽ' 'Ǿ' 'ǿ'); -noa=('S' 'e' 'e' 'e' 'A' 'A' 'A' 'A' 'A' 'A' 'AE' 'C' 'E' 'E' 'E' 'E' 'I' 'I' 'I' 'I' 'D' 'N' 'O' 'O' 'O' 'O' 'O' 'O' 'U' 'U' 'U' 'U' 'Y' 's' 'a' 'a' 'a' 'a' 'a' 'a' 'ae' 'c' 'e' 'e' 'e' 'e' 'i' 'i' 'i' 'i' 'n' 'o' 'o' 'o' 'o' 'o' 'o' 'u' 'u' 'u' 'u' 'y' 'y' 'A' 'a' 'A' 'a' 'A' 'a' 'C' 'c' 'C' 'c' 'C' 'c' 'C' 'c' 'D' 'd' 'D' 'd' 'E' 'e' 'E' 'e' 'E' 'e' 'E' 'e' 'E' 'e' 'G' 'g' 'G' 'g' 'G' 'g' 'G' 'g' 'H' 'h' 'H' 'h' 'I' 'i' 'I' 'i' 'I' 'i' 'I' 'i' 'I' 'i' 'IJ' 'ij' 'J' 'j' 'K' 'k' 'L' 'l' 'L' 'l' 'L' 'l' 'L' 'l' 'l' 'l' 'N' 'n' 'N' 'n' 'N' 'n' 'n' 'O' 'o' 'O' 'o' 'O' 'o' 'OE' 'oe' 'R' 'r' 'R' 'r' 'R' 'r' 'S' 's' 'S' 's' 'S' 's' 'S' 's' 'T' 't' 'T' 't' 'T' 't' 'U' 'u' 'U' 'u' 'U' 'u' 'U' 'u' 'U' 'u' 'U' 'u' 'W' 'w' 'Y' 'y' 'Y' 'Z' 'z' 'Z' 'z' 'Z' 'z' 's' 'f' 'O' 'o' 'U' 'u' 'A' 'a' 'I' 'i' 'O' 'o' 'U' 'u' 'U' 'u' 'U' 'u' 'U' 'u' 'U' 'u' 'A' 'a' 'AE' 'ae' 'O' 'o'); - -OUTPUT="" -i=0 -length=${#INPUT} -while [[ $i -lt $length ]]; do - char=${INPUT:$i:1}; - #echo $i:$char - j=0 - for letter in "${acc[@]}" - do - if [[ "$letter" == "$char" ]]; then - char="${noa[$j]}" - fi - ((j++)) - done - ((i++)) - OUTPUT=$OUTPUT$char -done -echo $OUTPUT -} - -# SCAN NEW LINE IN NEW RECORD LIST AND RUN youtube-dl search and copy -tail -fn 1 /tmp/ytdl.list | while read -r line -do -################################################# - radio=$(echo $line | cut -d "|" -f 1) - artist=$(echo $line | cut -d "|" -f 2) - song=$(echo $line | cut -d "|" -f 3) - echo "######## $radio ########" >> /tmp/youtube-dl.log 2>&1 - echo $(date) >> /tmp/youtube-dl.log 2>&1 - echo ${line} >> /tmp/youtube-dl.log 2>&1 - -################################################# -# YOUTUBE-DL SEARCH & COPY : "radio|artist|song" -if [[ "$artist" != "" && "$song" != "" && "$radio" != "" && "$radio" != "$song" && "$radio" != "undefined" && "$artist" != "$song" ]]; then - mkdir -p "/home/pi/music/${artist}/${song}" - ~/parle.sh "Démarrage Enregistrement $radio." - ~/parle.sh "$artist" "en-US" - ~/parle.sh "$song" "en-US" - echo "Copy youtube-dl: $artist | $song ($radio)" >> /tmp/youtube-dl.log 2>&1 - # Clean search string - mysearch=$(replace_accents "$artist $song") - if [[ "$mysearch" == "" ]]; then ~/parle.sh "Aucune recherche reçue!"; continue; fi - # Search & Download bestaudio from 1st video result (ogg / opus / m4a): MEDIUM CPU - # OPTION: --embed-thumbnail --metadata-from-title "%(artist)s - %(title)s" --add-metadata - youtube-dl --default-search ytsearch1: --download-archive /home/pi/.ytdl.list --continue --no-overwrites --metadata-from-title "$artist - %(title)s" --add-metadata --embed-thumbnail --ignore-errors -f m4a --extract-audio -o "/home/pi/music/${artist}/${song}/%(id)s.%(title)s.%(uploader_id)s.%(ext)s" "$mysearch" >> /tmp/youtube-dl.log 2>&1 - # TODO: CHOOSE --metadata-from-title "$artist - %(title)s" or --metadata-from-title %(title)s" - # Update mpd playlist - curl -b "currenthost=Default;player_backend=mpd" http://localhost/albums.php?rebuild=yes > /dev/null - ~/parle.sh "Enregistrement $radio terminé!" -###################################################### -#### COPY LINK : "CopyLaRadio||https://link2media.url" -elif [[ "$radio" != "" && "$artist" == "" && "$song" != "" ]]; then - # LINK COPY - ~/parle.sh "Copie du lien!" - echo "Copy LINK: $song" >> /tmp/youtube-dl.log 2>&1 - mkdir -p /home/pi/download/ - youtube-dl --download-archive /home/pi/.ytdl.list --continue --no-overwrites --embed-thumbnail --metadata-from-title "%(artist)s - %(title)s" --add-metadata -o "/home/pi/download/%(title)s.%(ext)s" "$song" >> /tmp/youtube-dl.log 2>&1 - ~/parle.sh "Enregistrement du lien terminé!" -###################################################### -#### COPY LINK : "radio||" -elif [[ "$radio" != "" && "$artist" == "" && "$song" == "" ]]; then - # EXTERNAL PARSER: ADD SCRAPERS IN ./libradio - ~/parle.sh "Recherche RADIO ${radio}" - echo "External search: ${radio}" >> /tmp/youtube-dl.log 2>&1 - if [[ -f /home/pi/G1sms+/_CopyLaRadio/libradio/${radio}.php ]]; then - ~/parle.sh "Module existant" - php "/home/pi/G1sms+/_CopyLaRadio/libradio/${radio}.php" - else - ~/parle.sh "Aucun module de décodage pour cette radio." - fi -#### NOTHING GOOD -else - ~/parle.sh "Rien à copier" -fi -done - diff --git a/_CopyLaRadio/libradio/FIP autour de llectro.php b/_CopyLaRadio/libradio/FIP autour de llectro.php deleted file mode 100644 index b4d883b..0000000 --- a/_CopyLaRadio/libradio/FIP autour de llectro.php +++ /dev/null @@ -1,75 +0,0 @@ - array( - 'header'=>array("Referer: ".$referer.PHP_EOL), - 'timeout' => 5 - ) - ) -); -/////////////////////////// -// LOAD RADIO PAGE INTO PARSER -$ontheair = file_get_contents($radiourl); // JSON CONTENT -$ontheair = utf8_encode($ontheair); -$obj = json_decode($ontheair, true); - - -// GET TRACK INFO: ADAPT WITH DATA STRUCTURE -// ADPAPT HERE -$current = $obj['data']['now']['playing_item']; -// GET TRACK INFO -if ( $current ) { - // ADPAPT HERE - $artist = ucwords(strtolower($current['title'])); - $title = ucwords(strtolower($current['subtitle'])); - - if ( $debug != 0 ) $ERR .= "\nTITRE = ".print_r($title, true); - if ( $debug != 0 ) $ERR .= "\nARTISTE = ".print_r($artist, true); - -} -/////////////////////////// -// PREPARE COPY COMMAND -$cmd = $RADIO.'|'.$artist.'|'.$title; - -/////////////////////////// -// DEBUG OR PROD -if($debug == 1) { - print_r($obj); - print_r($cmd); -} else { - if( $artist != "" && $title != "" ) { - // TODO Clean strings?! - if (! exec('grep '.escapeshellarg($cmd).' /tmp/ytdl.list')) { - file_put_contents("/tmp/youtube-dl.log", "ARTIST: ".$artist.". SONG: ".$title, FILE_APPEND); - file_put_contents("/tmp/ytdl.list","$cmd\n", FILE_APPEND); - } else { - file_put_contents("/tmp/youtube-dl.log", "ALREADY THERE!", FILE_APPEND); - file_put_contents("/tmp/ytdl.list","||".PHP_EOL, FILE_APPEND); - } - } else { - file_put_contents("/tmp/youtube-dl.log", "NO TRACK. TRY PODCAST!", FILE_APPEND); - file_put_contents("/tmp/ytdl.list","||".PHP_EOL, FILE_APPEND); - } -} -?> diff --git a/_CopyLaRadio/libradio/Nova zz.php b/_CopyLaRadio/libradio/Nova zz.php deleted file mode 120000 index 67488fe..0000000 --- a/_CopyLaRadio/libradio/Nova zz.php +++ /dev/null @@ -1 +0,0 @@ -radionova.php \ No newline at end of file diff --git a/_CopyLaRadio/libradio/fipelectro-midfi.mp3.php b/_CopyLaRadio/libradio/fipelectro-midfi.mp3.php deleted file mode 120000 index 62b4fe5..0000000 --- a/_CopyLaRadio/libradio/fipelectro-midfi.mp3.php +++ /dev/null @@ -1 +0,0 @@ -FIP autour de llectro.php \ No newline at end of file diff --git a/_CopyLaRadio/libradio/radionova.php b/_CopyLaRadio/libradio/radionova.php deleted file mode 100644 index fef1c4c..0000000 --- a/_CopyLaRadio/libradio/radionova.php +++ /dev/null @@ -1,74 +0,0 @@ - array( - 'header'=>array("Referer: ".$referer.PHP_EOL), - 'timeout' => 5 - ) - ) -); -/////////////////////////// -// LOAD RADIO PAGE INTO PARSER -$ontheair = file_get_contents($radiourl); // JSON CONTENT -$ontheair = utf8_encode($ontheair); -$obj = json_decode($ontheair, true); - - -// GET TRACK INFO: ADAPT WITH DATA STRUCTURE -// ADPAPT HERE -if ( $obj['currentTrack'] ) { - - // ADPAPT HERE - $title = ucwords(strtolower($obj['currentTrack']['title'])); - $artist = ucwords(strtolower($obj['currentTrack']['artist'])); - - if ( $debug != 0 ) $ERR .= "\nTITRE = ".print_r($title, true); - if ( $debug != 0 ) $ERR .= "\nARTISTE = ".print_r($artist, true); - -} -/////////////////////////// -// PREPARE COPY COMMAND -$cmd = $RADIO.'|'.$artist.'|'.$title; - -/////////////////////////// -// DEBUG OR PROD -if($debug == 1) { - print_r($obj); - print_r($cmd); -} else { - if( $artist != "" && $title != "" ) { - // TODO Clean strings?! - if (! exec('grep '.escapeshellarg($cmd).' /tmp/ytdl.list')) { - file_put_contents("/tmp/youtube-dl.log", "ARTIST: ".$artist.". SONG: ".$title, FILE_APPEND); - file_put_contents("/tmp/ytdl.list","$cmd\n", FILE_APPEND); - } else { - file_put_contents("/tmp/youtube-dl.log", "ALREADY THERE!", FILE_APPEND); - file_put_contents("/tmp/ytdl.list","||".PHP_EOL, FILE_APPEND); - } - } else { - file_put_contents("/tmp/youtube-dl.log", "NO TRACK. TRY PODCAST!", FILE_APPEND); - file_put_contents("/tmp/ytdl.list","||".PHP_EOL, FILE_APPEND); - } -} -?> diff --git a/_CopyLaRadio/libradio/simple_html_dom.php b/_CopyLaRadio/libradio/simple_html_dom.php deleted file mode 100644 index c0001e3..0000000 --- a/_CopyLaRadio/libradio/simple_html_dom.php +++ /dev/null @@ -1,2808 +0,0 @@ -size is the "real" - * number of bytes the dom was created from. But for most purposes, it's a - * really good estimation. - * - * Paperg - Added the forceTagsClosed to the dom constructor. Forcing tags - * closed is great for malformed html, but it CAN lead to parsing errors. - * - * Allow the user to tell us how much they trust the html. - * - * Paperg add the text and plaintext to the selectors for the find syntax. - * plaintext implies text in the innertext of a node. text implies that the - * tag is a text node. This allows for us to find tags based on the text they - * contain. - * - * Create find_ancestor_tag to see if a tag is - at any level - inside of - * another specific tag. - * - * Paperg: added parse_charset so that we know about the character set of - * the source document. NOTE: If the user's system has a routine called - * get_last_retrieve_url_contents_content_type availalbe, we will assume it's - * returning the content-type header from the last transfer or curl_exec, and - * we will parse that and use it in preference to any other method of charset - * detection. - * - * Found infinite loop in the case of broken html in restore_noise. Rewrote to - * protect from that. - * - * PaperG (John Schlick) Added get_display_size for "IMG" tags. - * - * Licensed under The MIT License - * Redistributions of files must retain the above copyright notice. - * - * @author S.C. Chen - * @author John Schlick - * @author Rus Carroll - * @version Rev. 1.8.1 (247) - * @package PlaceLocalInclude - * @subpackage simple_html_dom - */ - -/** - * All of the Defines for the classes below. - * @author S.C. Chen - */ -define('HDOM_TYPE_ELEMENT', 1); -define('HDOM_TYPE_COMMENT', 2); -define('HDOM_TYPE_TEXT', 3); -define('HDOM_TYPE_ENDTAG', 4); -define('HDOM_TYPE_ROOT', 5); -define('HDOM_TYPE_UNKNOWN', 6); -define('HDOM_QUOTE_DOUBLE', 0); -define('HDOM_QUOTE_SINGLE', 1); -define('HDOM_QUOTE_NO', 3); -define('HDOM_INFO_BEGIN', 0); -define('HDOM_INFO_END', 1); -define('HDOM_INFO_QUOTE', 2); -define('HDOM_INFO_SPACE', 3); -define('HDOM_INFO_TEXT', 4); -define('HDOM_INFO_INNER', 5); -define('HDOM_INFO_OUTER', 6); -define('HDOM_INFO_ENDSPACE', 7); - -/** The default target charset */ -defined('DEFAULT_TARGET_CHARSET') || define('DEFAULT_TARGET_CHARSET', 'UTF-8'); - -/** The default
text used instead of
tags when returning text */ -defined('DEFAULT_BR_TEXT') || define('DEFAULT_BR_TEXT', "\r\n"); - -/** The default text used instead of tags when returning text */ -defined('DEFAULT_SPAN_TEXT') || define('DEFAULT_SPAN_TEXT', ' '); - -/** The maximum file size the parser should load */ -defined('MAX_FILE_SIZE') || define('MAX_FILE_SIZE', 600000); - -/** Contents between curly braces "{" and "}" are interpreted as text */ -define('HDOM_SMARTY_AS_TEXT', 1); - -// helper functions -// ----------------------------------------------------------------------------- -// get html dom from file -// $maxlen is defined in the code as PHP_STREAM_COPY_ALL which is defined as -1. -function file_get_html( - $url, - $use_include_path = false, - $context = null, - $offset = 0, - $maxLen = -1, - $lowercase = true, - $forceTagsClosed = true, - $target_charset = DEFAULT_TARGET_CHARSET, - $stripRN = true, - $defaultBRText = DEFAULT_BR_TEXT, - $defaultSpanText = DEFAULT_SPAN_TEXT) -{ - // Ensure maximum length is greater than zero - if($maxLen <= 0) { $maxLen = MAX_FILE_SIZE; } - - // We DO force the tags to be terminated. - $dom = new simple_html_dom( - null, - $lowercase, - $forceTagsClosed, - $target_charset, - $stripRN, - $defaultBRText, - $defaultSpanText); - - /** - * For sourceforge users: uncomment the next line and comment the - * retrieve_url_contents line 2 lines down if it is not already done. - */ - $contents = file_get_contents( - $url, - $use_include_path, - $context, - $offset, - $maxLen); - - // Paperg - use our own mechanism for getting the contents as we want to - // control the timeout. - // $contents = retrieve_url_contents($url); - if (empty($contents) || strlen($contents) > $maxLen) { return false; } - - // The second parameter can force the selectors to all be lowercase. - $dom->load($contents, $lowercase, $stripRN); - return $dom; -} - -// get html dom from string -function str_get_html( - $str, - $lowercase = true, - $forceTagsClosed = true, - $target_charset = DEFAULT_TARGET_CHARSET, - $stripRN = true, - $defaultBRText = DEFAULT_BR_TEXT, - $defaultSpanText = DEFAULT_SPAN_TEXT) -{ - $dom = new simple_html_dom( - null, - $lowercase, - $forceTagsClosed, - $target_charset, - $stripRN, - $defaultBRText, - $defaultSpanText); - - if (empty($str) || strlen($str) > MAX_FILE_SIZE) { - $dom->clear(); - return false; - } - - $dom->load($str, $lowercase, $stripRN); - return $dom; -} - -// dump html dom tree -function dump_html_tree($node, $show_attr = true, $deep = 0) -{ - $node->dump($node); -} - -/** - * simple html dom node - * PaperG - added ability for "find" routine to lowercase the value of the - * selector. - * - * PaperG - added $tag_start to track the start position of the tag in the total - * byte index - * - * @package PlaceLocalInclude - */ -class simple_html_dom_node -{ - /** - * Node type - * - * Default is {@see HDOM_TYPE_TEXT} - * - * @var int - */ - public $nodetype = HDOM_TYPE_TEXT; - - /** - * Tag name - * - * Default is 'text' - * - * @var string - */ - public $tag = 'text'; - - /** - * List of attributes - * - * @var array - */ - public $attr = array(); - - /** - * List of child node objects - * - * @var array - */ - public $children = array(); - public $nodes = array(); - - /** - * The parent node object - * - * @var object|null - */ - public $parent = null; - - // The "info" array - see HDOM_INFO_... for what each element contains. - public $_ = array(); - - /** - * Start position of the tag in the document - * - * @var int - */ - public $tag_start = 0; - - /** - * The DOM object - * - * @var object|null - */ - private $dom = null; - - /** - * Construct new node object - * - * Adds itself to the list of DOM Nodes {@see simple_html_dom::$nodes} - */ - function __construct($dom) - { - $this->dom = $dom; - $dom->nodes[] = $this; - } - - function __destruct() - { - $this->clear(); - } - - function __toString() - { - return $this->outertext(); - } - - // clean up memory due to php5 circular references memory leak... - function clear() - { - $this->dom = null; - $this->nodes = null; - $this->parent = null; - $this->children = null; - } - - // dump node's tree - function dump($show_attr = true, $deep = 0) - { - $lead = str_repeat(' ', $deep); - - echo $lead . $this->tag; - - if ($show_attr && count($this->attr) > 0) { - echo '('; - foreach ($this->attr as $k => $v) { - echo "[$k]=>\"" . $this->$k . '", '; - } - echo ')'; - } - - echo "\n"; - - if ($this->nodes) { - foreach ($this->nodes as $c) { - $c->dump($show_attr, $deep + 1); - } - } - } - - - // Debugging function to dump a single dom node with a bunch of information about it. - function dump_node($echo = true) - { - $string = $this->tag; - - if (count($this->attr) > 0) { - $string .= '('; - foreach ($this->attr as $k => $v) { - $string .= "[$k]=>\"" . $this->$k . '", '; - } - $string .= ')'; - } - - if (count($this->_) > 0) { - $string .= ' $_ ('; - foreach ($this->_ as $k => $v) { - if (is_array($v)) { - $string .= "[$k]=>("; - foreach ($v as $k2 => $v2) { - $string .= "[$k2]=>\"" . $v2 . '", '; - } - $string .= ')'; - } else { - $string .= "[$k]=>\"" . $v . '", '; - } - } - $string .= ')'; - } - - if (isset($this->text)) { - $string .= ' text: (' . $this->text . ')'; - } - - $string .= " HDOM_INNER_INFO: '"; - - if (isset($node->_[HDOM_INFO_INNER])) { - $string .= $node->_[HDOM_INFO_INNER] . "'"; - } else { - $string .= ' NULL '; - } - - $string .= ' children: ' . count($this->children); - $string .= ' nodes: ' . count($this->nodes); - $string .= ' tag_start: ' . $this->tag_start; - $string .= "\n"; - - if ($echo) { - echo $string; - return; - } else { - return $string; - } - } - - /** - * Return or set parent node - * - * @param object|null $parent (optional) The parent node, `null` to return - * the current parent node. - * @return object|null The parent node - */ - function parent($parent = null) - { - // I am SURE that this doesn't work properly. - // It fails to unset the current node from it's current parents nodes or - // children list first. - if ($parent !== null) { - $this->parent = $parent; - $this->parent->nodes[] = $this; - $this->parent->children[] = $this; - } - - return $this->parent; - } - - /** - * @return bool True if the node has at least one child node - */ - function has_child() - { - return !empty($this->children); - } - - /** - * Get child node at specified index - * - * @param int $idx The index of the child node to return, `-1` to return all - * child nodes. - * @return object|array|null The child node at the specified index, all child - * nodes or null if the index is invalid. - */ - function children($idx = -1) - { - if ($idx === -1) { - return $this->children; - } - - if (isset($this->children[$idx])) { - return $this->children[$idx]; - } - - return null; - } - - /** - * Get first child node - * - * @return object|null The first child node or null if the current node has - * no child nodes. - * - * @todo Use `empty()` instead of `count()` to improve performance on large - * arrays. - */ - function first_child() - { - if (count($this->children) > 0) { - return $this->children[0]; - } - return null; - } - - /** - * Get last child node - * - * @return object|null The last child node or null if the current node has - * no child nodes. - * - * @todo Use `end()` to slightly improve performance on large arrays. - */ - function last_child() - { - if (($count = count($this->children)) > 0) { - return $this->children[$count - 1]; - } - return null; - } - - /** - * Get next sibling node - * - * @return object|null The sibling node or null if the current node has no - * sibling nodes. - */ - function next_sibling() - { - if ($this->parent === null) { - return null; - } - - $idx = 0; - $count = count($this->parent->children); - - while ($idx < $count && $this !== $this->parent->children[$idx]) { - ++$idx; - } - - if (++$idx >= $count) { - return null; - } - - return $this->parent->children[$idx]; - } - - /** - * Get previous sibling node - * - * @return object|null The sibling node or null if the current node has no - * sibling nodes. - */ - function prev_sibling() - { - if ($this->parent === null) { return null; } - - $idx = 0; - $count = count($this->parent->children); - - while ($idx < $count && $this !== $this->parent->children[$idx]) { - ++$idx; - } - - if (--$idx < 0) { return null; } - - return $this->parent->children[$idx]; - } - - /** - * Traverse ancestors to the first matching tag. - * - * @param string $tag Tag to find - * @return object|null First matching node in the DOM tree or null if no - * match was found. - * - * @todo Null is returned implicitly by calling ->parent on the root node. - * This behaviour could change at any time, rendering this function invalid. - */ - function find_ancestor_tag($tag) - { - global $debug_object; - if (is_object($debug_object)) { $debug_object->debug_log_entry(1); } - - // Start by including ourselves in the comparison. - $returnDom = $this; - - while (!is_null($returnDom)) { - if (is_object($debug_object)) { - $debug_object->debug_log(2, 'Current tag is: ' . $returnDom->tag); - } - - if ($returnDom->tag == $tag) { - break; - } - - $returnDom = $returnDom->parent; - } - - return $returnDom; - } - - /** - * Get node's inner text (everything inside the opening and closing tags) - * - * @return string - */ - function innertext() - { - if (isset($this->_[HDOM_INFO_INNER])) { - return $this->_[HDOM_INFO_INNER]; - } - - if (isset($this->_[HDOM_INFO_TEXT])) { - return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]); - } - - $ret = ''; - - foreach ($this->nodes as $n) { - $ret .= $n->outertext(); - } - - return $ret; - } - - /** - * Get node's outer text (everything including the opening and closing tags) - * - * @return string - */ - function outertext() - { - global $debug_object; - - if (is_object($debug_object)) { - $text = ''; - - if ($this->tag === 'text') { - if (!empty($this->text)) { - $text = ' with text: ' . $this->text; - } - } - - $debug_object->debug_log(1, 'Innertext of tag: ' . $this->tag . $text); - } - - if ($this->tag === 'root') return $this->innertext(); - - // trigger callback - if ($this->dom && $this->dom->callback !== null) { - call_user_func_array($this->dom->callback, array($this)); - } - - if (isset($this->_[HDOM_INFO_OUTER])) { - return $this->_[HDOM_INFO_OUTER]; - } - - if (isset($this->_[HDOM_INFO_TEXT])) { - return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]); - } - - // render begin tag - if ($this->dom && $this->dom->nodes[$this->_[HDOM_INFO_BEGIN]]) { - $ret = $this->dom->nodes[$this->_[HDOM_INFO_BEGIN]]->makeup(); - } else { - $ret = ''; - } - - // render inner text - if (isset($this->_[HDOM_INFO_INNER])) { - // If it's a br tag... don't return the HDOM_INNER_INFO that we - // may or may not have added. - if ($this->tag !== 'br') { - $ret .= $this->_[HDOM_INFO_INNER]; - } - } else { - if ($this->nodes) { - foreach ($this->nodes as $n) { - $ret .= $this->convert_text($n->outertext()); - } - } - } - - // render end tag - if (isset($this->_[HDOM_INFO_END]) && $this->_[HDOM_INFO_END] != 0) { - $ret .= 'tag . '>'; - } - - return $ret; - } - - /** - * Get node's plain text (everything excluding all tags) - * - * @return string - */ - function text() - { - if (isset($this->_[HDOM_INFO_INNER])) { - return $this->_[HDOM_INFO_INNER]; - } - - switch ($this->nodetype) { - case HDOM_TYPE_TEXT: return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]); - case HDOM_TYPE_COMMENT: return ''; - case HDOM_TYPE_UNKNOWN: return ''; - } - - if (strcasecmp($this->tag, 'script') === 0) { return ''; } - if (strcasecmp($this->tag, 'style') === 0) { return ''; } - - $ret = ''; - - // In rare cases, (always node type 1 or HDOM_TYPE_ELEMENT - observed - // for some span tags, and some p tags) $this->nodes is set to NULL. - // NOTE: This indicates that there is a problem where it's set to NULL - // without a clear happening. - // WHY is this happening? - if (!is_null($this->nodes)) { - foreach ($this->nodes as $n) { - // Start paragraph after a blank line - if ($n->tag === 'p') { - $ret .= "\n\n"; - } - - $ret .= $this->convert_text($n->text()); - - // If this node is a span... add a space at the end of it so - // multiple spans don't run into each other. This is plaintext - // after all. - if ($n->tag === 'span') { - $ret .= $this->dom->default_span_text; - } - } - } - return trim($ret); - } - - /** - * Get node's xml text (inner text as a CDATA section) - * - * @return string - */ - function xmltext() - { - $ret = $this->innertext(); - $ret = str_ireplace('', '', $ret); - return $ret; - } - - // build node's text with tag - function makeup() - { - // text, comment, unknown - if (isset($this->_[HDOM_INFO_TEXT])) { - return $this->dom->restore_noise($this->_[HDOM_INFO_TEXT]); - } - - $ret = '<' . $this->tag; - $i = -1; - - foreach ($this->attr as $key => $val) { - ++$i; - - // skip removed attribute - if ($val === null || $val === false) { continue; } - - $ret .= $this->_[HDOM_INFO_SPACE][$i][0]; - - //no value attr: nowrap, checked selected... - if ($val === true) { - $ret .= $key; - } else { - switch ($this->_[HDOM_INFO_QUOTE][$i]) - { - case HDOM_QUOTE_DOUBLE: $quote = '"'; break; - case HDOM_QUOTE_SINGLE: $quote = '\''; break; - default: $quote = ''; - } - - $ret .= $key - . $this->_[HDOM_INFO_SPACE][$i][1] - . '=' - . $this->_[HDOM_INFO_SPACE][$i][2] - . $quote - . $val - . $quote; - } - } - - $ret = $this->dom->restore_noise($ret); - return $ret . $this->_[HDOM_INFO_ENDSPACE] . '>'; - } - - /** - * Find elements by CSS selector - * - * @param string $selector The CSS selector - * @param int|null $idx Index of element to return form the list of matching - * elements (default: `null` = disabled). - * @param bool $lowercase Matches tag names case insensitive (lowercase) if - * enabled (default: `false`) - * @return array|object|null A list of elements matching the specified CSS - * selector or a single element if $idx is specified or null if no element - * was found. - */ - function find($selector, $idx = null, $lowercase = false) - { - $selectors = $this->parse_selector($selector); - if (($count = count($selectors)) === 0) { return array(); } - $found_keys = array(); - - // find each selector - for ($c = 0; $c < $count; ++$c) { - // The change on the below line was documented on the sourceforge - // code tracker id 2788009 - // used to be: if (($levle=count($selectors[0]))===0) return array(); - if (($levle = count($selectors[$c])) === 0) { return array(); } - if (!isset($this->_[HDOM_INFO_BEGIN])) { return array(); } - - $head = array($this->_[HDOM_INFO_BEGIN] => 1); - $cmd = ' '; // Combinator - - // handle descendant selectors, no recursive! - for ($l = 0; $l < $levle; ++$l) { - $ret = array(); - - foreach ($head as $k => $v) { - $n = ($k === -1) ? $this->dom->root : $this->dom->nodes[$k]; - //PaperG - Pass this optional parameter on to the seek function. - $n->seek($selectors[$c][$l], $ret, $cmd, $lowercase); - } - - $head = $ret; - $cmd = $selectors[$c][$l][4]; // Next Combinator - } - - foreach ($head as $k => $v) { - if (!isset($found_keys[$k])) { - $found_keys[$k] = 1; - } - } - } - - // sort keys - ksort($found_keys); - - $found = array(); - foreach ($found_keys as $k => $v) { - $found[] = $this->dom->nodes[$k]; - } - - // return nth-element or array - if (is_null($idx)) { return $found; } - elseif ($idx < 0) { $idx = count($found) + $idx; } - return (isset($found[$idx])) ? $found[$idx] : null; - } - - /** - * Seek DOM elements by selector - * - * **Note** - * The selector element must be compatible to a selector from - * {@see simple_html_dom_node::parse_selector()} - * - * @param array $selector A selector element - * @param array $ret An array of matches - * @param bool $lowercase Matches tag names case insensitive (lowercase) if - * enabled (default: `false`) - * @return void - */ - protected function seek($selector, &$ret, $parent_cmd, $lowercase = false) - { - global $debug_object; - if (is_object($debug_object)) { $debug_object->debug_log_entry(1); } - - list($tag, $id, $class, $attributes, $cmb) = $selector; - $nodes = array(); - - if ($parent_cmd === ' ') { // Descendant Combinator - // Find parent closing tag if the current element doesn't have a closing - // tag (i.e. void element) - $end = (!empty($this->_[HDOM_INFO_END])) ? $this->_[HDOM_INFO_END] : 0; - if ($end == 0) { - $parent = $this->parent; - while (!isset($parent->_[HDOM_INFO_END]) && $parent !== null) { - $end -= 1; - $parent = $parent->parent; - } - $end += $parent->_[HDOM_INFO_END]; - } - - // Get list of target nodes - $nodes_start = $this->_[HDOM_INFO_BEGIN] + 1; - $nodes_count = $end - $nodes_start; - $nodes = array_slice($this->dom->nodes, $nodes_start, $nodes_count, true); - } elseif ($parent_cmd === '>') { // Child Combinator - $nodes = $this->children; - } elseif ($parent_cmd === '+' - && $this->parent - && in_array($this, $this->parent->children)) { // Next-Sibling Combinator - $index = array_search($this, $this->parent->children, true) + 1; - $nodes[] = $this->parent->children[$index]; - } elseif ($parent_cmd === '~' - && $this->parent - && in_array($this, $this->parent->children)) { // Subsequent Sibling Combinator - $index = array_search($this, $this->parent->children, true); - $nodes = array_slice($this->parent->children, $index); - } - - // Go throgh each element starting at this element until the end tag - // Note: If this element is a void tag, any previous void element is - // skipped. - foreach($nodes as $node) { - $pass = true; - - // Skip root nodes - if(!$node->parent) { - $pass = false; - } - - // Skip if node isn't a child node (i.e. text nodes) - if($pass && !in_array($node, $node->parent->children, true)) { - $pass = false; - } - - // Skip if tag doesn't match - if ($pass && $tag !== '' && $tag !== $node->tag && $tag !== '*') { - $pass = false; - } - - // Skip if ID doesn't exist - if ($pass && $id !== '' && !isset($node->attr['id'])) { - $pass = false; - } - - // Check if ID matches - if ($pass && $id !== '' && isset($node->attr['id'])) { - // Note: Only consider the first ID (as browsers do) - $node_id = explode(' ', trim($node->attr['id']))[0]; - - if($id !== $node_id) { $pass = false; } - } - - // Check if all class(es) exist - if ($pass && $class !== '' && is_array($class) && !empty($class)) { - if (isset($node->attr['class'])) { - $node_classes = explode(' ', $node->attr['class']); - - if ($lowercase) { - $node_classes = array_map('strtolower', $node_classes); - } - - foreach($class as $c) { - if(!in_array($c, $node_classes)) { - $pass = false; - break; - } - } - } else { - $pass = false; - } - } - - // Check attributes - if ($pass - && $attributes !== '' - && is_array($attributes) - && !empty($attributes)) { - foreach($attributes as $a) { - list ( - $att_name, - $att_expr, - $att_val, - $att_inv, - $att_case_sensitivity - ) = $a; - - // Handle indexing attributes (i.e. "[2]") - /** - * Note: This is not supported by the CSS Standard but adds - * the ability to select items compatible to XPath (i.e. - * the 3rd element within it's parent). - * - * Note: This doesn't conflict with the CSS Standard which - * doesn't work on numeric attributes anyway. - */ - if (is_numeric($att_name) - && $att_expr === '' - && $att_val === '') { - $count = 0; - - // Find index of current element in parent - foreach ($node->parent->children as $c) { - if ($c->tag === $node->tag) ++$count; - if ($c === $node) break; - } - - // If this is the correct node, continue with next - // attribute - if ($count === (int)$att_name) continue; - } - - // Check attribute availability - if ($att_inv) { // Attribute should NOT be set - if (isset($node->attr[$att_name])) { - $pass = false; - break; - } - } else { // Attribute should be set - // todo: "plaintext" is not a valid CSS selector! - if ($att_name !== 'plaintext' - && !isset($node->attr[$att_name])) { - $pass = false; - break; - } - } - - // Continue with next attribute if expression isn't defined - if ($att_expr === '') continue; - - // If they have told us that this is a "plaintext" - // search then we want the plaintext of the node - right? - // todo "plaintext" is not a valid CSS selector! - if ($att_name === 'plaintext') { - $nodeKeyValue = $node->text(); - } else { - $nodeKeyValue = $node->attr[$att_name]; - } - - if (is_object($debug_object)) { - $debug_object->debug_log(2, - 'testing node: ' - . $node->tag - . ' for attribute: ' - . $att_name - . $att_expr - . $att_val - . ' where nodes value is: ' - . $nodeKeyValue - ); - } - - // If lowercase is set, do a case insensitive test of - // the value of the selector. - if ($lowercase) { - $check = $this->match( - $att_expr, - strtolower($att_val), - strtolower($nodeKeyValue), - $att_case_sensitivity - ); - } else { - $check = $this->match( - $att_expr, - $att_val, - $nodeKeyValue, - $att_case_sensitivity - ); - } - - if (is_object($debug_object)) { - $debug_object->debug_log(2, - 'after match: ' - . ($check ? 'true' : 'false') - ); - } - - if (!$check) { - $pass = false; - break; - } - } - } - - // Found a match. Add to list and clear node - if ($pass) $ret[$node->_[HDOM_INFO_BEGIN]] = 1; - unset($node); - } - // It's passed by reference so this is actually what this function returns. - if (is_object($debug_object)) { - $debug_object->debug_log(1, 'EXIT - ret: ', $ret); - } - } - - /** - * Match value and pattern for a given CSS expression - * - * **Supported Expressions** - * - * | Expression | Description - * | ---------- | ----------- - * | `=` | $value and $pattern must be equal - * | `!=` | $value and $pattern must not be equal - * | `^=` | $value must start with $pattern - * | `$=` | $value must end with $pattern - * | `*=` | $value must contain $pattern - * - * @param string $exp The expression. - * @param string $pattern The pattern - * @param string $value The value - * @value bool True if $value matches $pattern - */ - protected function match($exp, $pattern, $value, $case_sensitivity) - { - global $debug_object; - if (is_object($debug_object)) {$debug_object->debug_log_entry(1);} - - if ($case_sensitivity === 'i') { - $pattern = strtolower($pattern); - $value = strtolower($value); - } - - switch ($exp) { - case '=': - return ($value === $pattern); - case '!=': - return ($value !== $pattern); - case '^=': - return preg_match('/^' . preg_quote($pattern, '/') . '/', $value); - case '$=': - return preg_match('/' . preg_quote($pattern, '/') . '$/', $value); - case '*=': - return preg_match('/' . preg_quote($pattern, '/') . '/', $value); - case '|=': - /** - * [att|=val] - * - * Represents an element with the att attribute, its value - * either being exactly "val" or beginning with "val" - * immediately followed by "-" (U+002D). - */ - return strpos($value, $pattern) === 0; - case '~=': - /** - * [att~=val] - * - * Represents an element with the att attribute whose value is a - * whitespace-separated list of words, one of which is exactly - * "val". If "val" contains whitespace, it will never represent - * anything (since the words are separated by spaces). Also if - * "val" is the empty string, it will never represent anything. - */ - return in_array($pattern, explode(' ', trim($value)), true); - } - return false; - } - - /** - * Parse CSS selector - * - * @param string $selector_string CSS selector string - * @return array List of CSS selectors. The format depends on the type of - * selector: - * - * ```php - * - * array( // list of selectors (each separated by a comma), i.e. 'img, p, div' - * array( // list of combinator selectors, i.e. 'img > p > div' - * array( // selector element - * [0], // (string) The element tag - * [1], // (string) The element id - * [2], // (array) The element classes - * [3], // (array>) The list of attributes, each - * // with four elements: name, expression, value, inverted - * [4] // (string) The selector combinator (' ' | '>' | '+' | '~') - * ) - * ) - * ) - * ``` - * - * @link https://www.w3.org/TR/selectors/#compound Compound selector - */ - protected function parse_selector($selector_string) - { - global $debug_object; - if (is_object($debug_object)) { $debug_object->debug_log_entry(1); } - - /** - * Pattern of CSS selectors, modified from mootools (https://mootools.net/) - * - * Paperg: Add the colon to the attribute, so that it properly finds - * like google does. - * - * Note: if you try to look at this attribute, you MUST use getAttribute - * since $dom->x:y will fail the php syntax check. - * - * Notice the \[ starting the attribute? and the @? following? This - * implies that an attribute can begin with an @ sign that is not - * captured. This implies that an html attribute specifier may start - * with an @ sign that is NOT captured by the expression. Farther study - * is required to determine of this should be documented or removed. - * - * Matches selectors in this order: - * - * [0] - full match - * - * [1] - tag name - * ([\w:\*-]*) - * Matches the tag name consisting of zero or more words, colons, - * asterisks and hyphens. - * - * [2] - id name - * (?:\#([\w-]+)) - * Optionally matches a id name, consisting of an "#" followed by - * the id name (one or more words and hyphens). - * - * [3] - class names (including dots) - * (?:\.([\w\.-]+))? - * Optionally matches a list of classs, consisting of an "." - * followed by the class name (one or more words and hyphens) - * where multiple classes can be chained (i.e. ".foo.bar.baz") - * - * [4] - attributes - * ((?:\[@?(?:!?[\w:-]+)(?:(?:[!*^$|~]?=)[\"']?(?:.*?)[\"']?)?(?:\s*?(?:[iIsS])?)?\])+)? - * Optionally matches the attributes list - * - * [5] - separator - * ([\/, >+~]+) - * Matches the selector list separator - */ - // phpcs:ignore Generic.Files.LineLength - $pattern = "/([\w:\*-]*)(?:\#([\w-]+))?(?:|\.([\w\.-]+))?((?:\[@?(?:!?[\w:-]+)(?:(?:[!*^$|~]?=)[\"']?(?:.*?)[\"']?)?(?:\s*?(?:[iIsS])?)?\])+)?([\/, >+~]+)/is"; - - preg_match_all( - $pattern, - trim($selector_string) . ' ', // Add final ' ' as pseudo separator - $matches, - PREG_SET_ORDER - ); - - if (is_object($debug_object)) { - $debug_object->debug_log(2, 'Matches Array: ', $matches); - } - - $selectors = array(); - $result = array(); - - foreach ($matches as $m) { - $m[0] = trim($m[0]); - - // Skip NoOps - if ($m[0] === '' || $m[0] === '/' || $m[0] === '//') { continue; } - - // Convert to lowercase - if ($this->dom->lowercase) { - $m[1] = strtolower($m[1]); - } - - // Extract classes - if ($m[3] !== '') { $m[3] = explode('.', $m[3]); } - - /* Extract attributes (pattern based on the pattern above!) - - * [0] - full match - * [1] - attribute name - * [2] - attribute expression - * [3] - attribute value - * [4] - case sensitivity - * - * Note: Attributes can be negated with a "!" prefix to their name - */ - if($m[4] !== '') { - preg_match_all( - "/\[@?(!?[\w:-]+)(?:([!*^$|~]?=)[\"']?(.*?)[\"']?)?(?:\s*?([iIsS])?)?\]/is", - trim($m[4]), - $attributes, - PREG_SET_ORDER - ); - - // Replace element by array - $m[4] = array(); - - foreach($attributes as $att) { - // Skip empty matches - if(trim($att[0]) === '') { continue; } - - $inverted = (isset($att[1][0]) && $att[1][0] === '!'); - $m[4][] = array( - $inverted ? substr($att[1], 1) : $att[1], // Name - (isset($att[2])) ? $att[2] : '', // Expression - (isset($att[3])) ? $att[3] : '', // Value - $inverted, // Inverted Flag - (isset($att[4])) ? strtolower($att[4]) : '', // Case-Sensitivity - ); - } - } - - // Sanitize Separator - if ($m[5] !== '' && trim($m[5]) === '') { // Descendant Separator - $m[5] = ' '; - } else { // Other Separator - $m[5] = trim($m[5]); - } - - // Clear Separator if it's a Selector List - if ($is_list = ($m[5] === ',')) { $m[5] = ''; } - - // Remove full match before adding to results - array_shift($m); - $result[] = $m; - - if ($is_list) { // Selector List - $selectors[] = $result; - $result = array(); - } - } - - if (count($result) > 0) { $selectors[] = $result; } - return $selectors; - } - - function __get($name) - { - if (isset($this->attr[$name])) { - return $this->convert_text($this->attr[$name]); - } - switch ($name) { - case 'outertext': return $this->outertext(); - case 'innertext': return $this->innertext(); - case 'plaintext': return $this->text(); - case 'xmltext': return $this->xmltext(); - default: return array_key_exists($name, $this->attr); - } - } - - function __set($name, $value) - { - global $debug_object; - if (is_object($debug_object)) { $debug_object->debug_log_entry(1); } - - switch ($name) { - case 'outertext': return $this->_[HDOM_INFO_OUTER] = $value; - case 'innertext': - if (isset($this->_[HDOM_INFO_TEXT])) { - return $this->_[HDOM_INFO_TEXT] = $value; - } - return $this->_[HDOM_INFO_INNER] = $value; - } - - if (!isset($this->attr[$name])) { - $this->_[HDOM_INFO_SPACE][] = array(' ', '', ''); - $this->_[HDOM_INFO_QUOTE][] = HDOM_QUOTE_DOUBLE; - } - - $this->attr[$name] = $value; - } - - function __isset($name) - { - switch ($name) { - case 'outertext': return true; - case 'innertext': return true; - case 'plaintext': return true; - } - //no value attr: nowrap, checked selected... - return (array_key_exists($name, $this->attr)) ? true : isset($this->attr[$name]); - } - - function __unset($name) - { - if (isset($this->attr[$name])) { unset($this->attr[$name]); } - } - - // PaperG - Function to convert the text from one character set to another - // if the two sets are not the same. - function convert_text($text) - { - global $debug_object; - if (is_object($debug_object)) { $debug_object->debug_log_entry(1); } - - $converted_text = $text; - - $sourceCharset = ''; - $targetCharset = ''; - - if ($this->dom) { - $sourceCharset = strtoupper($this->dom->_charset); - $targetCharset = strtoupper($this->dom->_target_charset); - } - - if (is_object($debug_object)) { - $debug_object->debug_log(3, - 'source charset: ' - . $sourceCharset - . ' target charaset: ' - . $targetCharset - ); - } - - if (!empty($sourceCharset) - && !empty($targetCharset) - && (strcasecmp($sourceCharset, $targetCharset) != 0)) { - // Check if the reported encoding could have been incorrect and the text is actually already UTF-8 - if ((strcasecmp($targetCharset, 'UTF-8') == 0) - && ($this->is_utf8($text))) { - $converted_text = $text; - } else { - $converted_text = iconv($sourceCharset, $targetCharset, $text); - } - } - - // Lets make sure that we don't have that silly BOM issue with any of the utf-8 text we output. - if ($targetCharset === 'UTF-8') { - if (substr($converted_text, 0, 3) === "\xef\xbb\xbf") { - $converted_text = substr($converted_text, 3); - } - - if (substr($converted_text, -3) === "\xef\xbb\xbf") { - $converted_text = substr($converted_text, 0, -3); - } - } - - return $converted_text; - } - - /** - * Returns true if $string is valid UTF-8 and false otherwise. - * - * @param mixed $str String to be tested - * @return boolean - */ - static function is_utf8($str) - { - $c = 0; $b = 0; - $bits = 0; - $len = strlen($str); - for($i = 0; $i < $len; $i++) { - $c = ord($str[$i]); - if($c > 128) { - if(($c >= 254)) { return false; } - elseif($c >= 252) { $bits = 6; } - elseif($c >= 248) { $bits = 5; } - elseif($c >= 240) { $bits = 4; } - elseif($c >= 224) { $bits = 3; } - elseif($c >= 192) { $bits = 2; } - else { return false; } - if(($i + $bits) > $len) { return false; } - while($bits > 1) { - $i++; - $b = ord($str[$i]); - if($b < 128 || $b > 191) { return false; } - $bits--; - } - } - } - return true; - } - - /** - * Function to try a few tricks to determine the displayed size of an img on - * the page. NOTE: This will ONLY work on an IMG tag. Returns FALSE on all - * other tag types. - * - * @author John Schlick - * @version April 19 2012 - * @return array an array containing the 'height' and 'width' of the image - * on the page or -1 if we can't figure it out. - */ - function get_display_size() - { - global $debug_object; - - $width = -1; - $height = -1; - - if ($this->tag !== 'img') { - return false; - } - - // See if there is aheight or width attribute in the tag itself. - if (isset($this->attr['width'])) { - $width = $this->attr['width']; - } - - if (isset($this->attr['height'])) { - $height = $this->attr['height']; - } - - // Now look for an inline style. - if (isset($this->attr['style'])) { - // Thanks to user gnarf from stackoverflow for this regular expression. - $attributes = array(); - - preg_match_all( - '/([\w-]+)\s*:\s*([^;]+)\s*;?/', - $this->attr['style'], - $matches, - PREG_SET_ORDER - ); - - foreach ($matches as $match) { - $attributes[$match[1]] = $match[2]; - } - - // If there is a width in the style attributes: - if (isset($attributes['width']) && $width == -1) { - // check that the last two characters are px (pixels) - if (strtolower(substr($attributes['width'], -2)) === 'px') { - $proposed_width = substr($attributes['width'], 0, -2); - // Now make sure that it's an integer and not something stupid. - if (filter_var($proposed_width, FILTER_VALIDATE_INT)) { - $width = $proposed_width; - } - } - } - - // If there is a width in the style attributes: - if (isset($attributes['height']) && $height == -1) { - // check that the last two characters are px (pixels) - if (strtolower(substr($attributes['height'], -2)) == 'px') { - $proposed_height = substr($attributes['height'], 0, -2); - // Now make sure that it's an integer and not something stupid. - if (filter_var($proposed_height, FILTER_VALIDATE_INT)) { - $height = $proposed_height; - } - } - } - - } - - // Future enhancement: - // Look in the tag to see if there is a class or id specified that has - // a height or width attribute to it. - - // Far future enhancement - // Look at all the parent tags of this image to see if they specify a - // class or id that has an img selector that specifies a height or width - // Note that in this case, the class or id will have the img subselector - // for it to apply to the image. - - // ridiculously far future development - // If the class or id is specified in a SEPARATE css file thats not on - // the page, go get it and do what we were just doing for the ones on - // the page. - - $result = array( - 'height' => $height, - 'width' => $width - ); - - return $result; - } - - // camel naming conventions - function getAllAttributes() - { - return $this->attr; - } - - function getAttribute($name) - { - return $this->__get($name); - } - - function setAttribute($name, $value) - { - $this->__set($name, $value); - } - - function hasAttribute($name) - { - return $this->__isset($name); - } - - function removeAttribute($name) - { - $this->__set($name, null); - } - - function getElementById($id) - { - return $this->find("#$id", 0); - } - - function getElementsById($id, $idx = null) - { - return $this->find("#$id", $idx); - } - - function getElementByTagName($name) - { - return $this->find($name, 0); - } - - function getElementsByTagName($name, $idx = null) - { - return $this->find($name, $idx); - } - - function parentNode() - { - return $this->parent(); - } - - function childNodes($idx = -1) - { - return $this->children($idx); - } - - function firstChild() - { - return $this->first_child(); - } - - function lastChild() - { - return $this->last_child(); - } - - function nextSibling() - { - return $this->next_sibling(); - } - - function previousSibling() - { - return $this->prev_sibling(); - } - - function hasChildNodes() - { - return $this->has_child(); - } - - function nodeName() - { - return $this->tag; - } - - function appendChild($node) - { - $node->parent($this); - return $node; - } - -} - -/** - * simple html dom parser - * - * Paperg - in the find routine: allow us to specify that we want case - * insensitive testing of the value of the selector. - * - * Paperg - change $size from protected to public so we can easily access it - * - * Paperg - added ForceTagsClosed in the constructor which tells us whether we - * trust the html or not. Default is to NOT trust it. - * - * @package PlaceLocalInclude - */ -class simple_html_dom -{ - /** - * The root node of the document - * - * @var object - */ - public $root = null; - - /** - * List of nodes in the current DOM - * - * @var array - */ - public $nodes = array(); - - /** - * Callback function to run for each element in the DOM. - * - * @var callable|null - */ - public $callback = null; - - /** - * Indicates how tags and attributes are matched - * - * @var bool When set to **true** tags and attributes will be converted to - * lowercase before matching. - */ - public $lowercase = false; - - /** - * Original document size - * - * Holds the original document size. - * - * @var int - */ - public $original_size; - - /** - * Current document size - * - * Holds the current document size. The document size is determined by the - * string length of ({@see simple_html_dom::$doc}). - * - * _Note_: Using this variable is more efficient than calling `strlen($doc)` - * - * @var int - * */ - public $size; - - /** - * Current position in the document - * - * @var int - */ - protected $pos; - - /** - * The document - * - * @var string - */ - protected $doc; - - /** - * Current character - * - * Holds the current character at position {@see simple_html_dom::$pos} in - * the document {@see simple_html_dom::$doc} - * - * _Note_: Using this variable is more efficient than calling - * `substr($doc, $pos, 1)` - * - * @var string - */ - protected $char; - - protected $cursor; - - /** - * Parent node of the next node detected by the parser - * - * @var object - */ - protected $parent; - protected $noise = array(); - - /** - * Tokens considered blank in HTML - * - * @var string - */ - protected $token_blank = " \t\r\n"; - - /** - * Tokens to identify the equal sign for attributes, stopping either at the - * closing tag ("/" i.e. "") or the end of an opening tag (">" i.e. - * "") - * - * @var string - */ - protected $token_equal = ' =/>'; - - /** - * Tokens to identify the end of a tag name. A tag name either ends on the - * ending slash ("/" i.e. "") or whitespace ("\s\r\n\t") - * - * @var string - */ - protected $token_slash = " />\r\n\t"; - - /** - * Tokens to identify the end of an attribute - * - * @var string - */ - protected $token_attr = ' >'; - - // Note that this is referenced by a child node, and so it needs to be - // public for that node to see this information. - public $_charset = ''; - public $_target_charset = ''; - - /** - * Innertext for
elements - * - * @var string - */ - protected $default_br_text = ''; - - /** - * Suffix for elements - * - * @var string - */ - public $default_span_text = ''; - - /** - * Defines a list of self-closing tags (Void elements) according to the HTML - * Specification - * - * _Remarks_: - * - Use `isset()` instead of `in_array()` on array elements to boost - * performance about 30% - * - Sort elements by name for better readability! - * - * @link https://www.w3.org/TR/html HTML Specification - * @link https://www.w3.org/TR/html/syntax.html#void-elements Void elements - */ - protected $self_closing_tags = array( - 'area' => 1, - 'base' => 1, - 'br' => 1, - 'col' => 1, - 'embed' => 1, - 'hr' => 1, - 'img' => 1, - 'input' => 1, - 'link' => 1, - 'meta' => 1, - 'param' => 1, - 'source' => 1, - 'track' => 1, - 'wbr' => 1 - ); - - /** - * Defines a list of tags which - if closed - close all optional closing - * elements within if they haven't been closed yet. (So, an element where - * neither opening nor closing tag is omissible consistently closes every - * optional closing element within) - * - * _Remarks_: - * - Use `isset()` instead of `in_array()` on array elements to boost - * performance about 30% - * - Sort elements by name for better readability! - */ - protected $block_tags = array( - 'body' => 1, - 'div' => 1, - 'form' => 1, - 'root' => 1, - 'span' => 1, - 'table' => 1 - ); - - /** - * Defines elements whose end tag is omissible. - * - * * key = Name of an element whose end tag is omissible. - * * value = Names of elements whose end tag is omissible, that are closed - * by the current element. - * - * _Remarks_: - * - Use `isset()` instead of `in_array()` on array elements to boost - * performance about 30% - * - Sort elements by name for better readability! - * - * **Example** - * - * An `li` element’s end tag may be omitted if the `li` element is immediately - * followed by another `li` element. To do that, add following element to the - * array: - * - * ```php - * 'li' => array('li'), - * ``` - * - * With this, the following two examples are considered equal. Note that the - * second example is missing the closing tags on `li` elements. - * - * ```html - *
  • First Item
  • Second Item
- * ``` - * - *
  • First Item
  • Second Item
- * - * ```html - *
  • First Item
  • Second Item
- * ``` - * - *
  • First Item
  • Second Item
- * - * @var array A two-dimensional array where the key is the name of an - * element whose end tag is omissible and the value is an array of elements - * whose end tag is omissible, that are closed by the current element. - * - * @link https://www.w3.org/TR/html/syntax.html#optional-tags Optional tags - * - * @todo The implementation of optional closing tags doesn't work in all cases - * because it only consideres elements who close other optional closing - * tags, not taking into account that some (non-blocking) tags should close - * these optional closing tags. For example, the end tag for "p" is omissible - * and can be closed by an "address" element, whose end tag is NOT omissible. - * Currently a "p" element without closing tag stops at the next "p" element - * or blocking tag, even if it contains other elements. - * - * @todo Known sourceforge issue #2977341 - * B tags that are not closed cause us to return everything to the end of - * the document. - */ - protected $optional_closing_tags = array( - // Not optional, see - // https://www.w3.org/TR/html/textlevel-semantics.html#the-b-element - 'b' => array('b' => 1), - 'dd' => array('dd' => 1, 'dt' => 1), - // Not optional, see - // https://www.w3.org/TR/html/grouping-content.html#the-dl-element - 'dl' => array('dd' => 1, 'dt' => 1), - 'dt' => array('dd' => 1, 'dt' => 1), - 'li' => array('li' => 1), - 'optgroup' => array('optgroup' => 1, 'option' => 1), - 'option' => array('optgroup' => 1, 'option' => 1), - 'p' => array('p' => 1), - 'rp' => array('rp' => 1, 'rt' => 1), - 'rt' => array('rp' => 1, 'rt' => 1), - 'td' => array('td' => 1, 'th' => 1), - 'th' => array('td' => 1, 'th' => 1), - 'tr' => array('td' => 1, 'th' => 1, 'tr' => 1), - ); - - function __construct( - $str = null, - $lowercase = true, - $forceTagsClosed = true, - $target_charset = DEFAULT_TARGET_CHARSET, - $stripRN = true, - $defaultBRText = DEFAULT_BR_TEXT, - $defaultSpanText = DEFAULT_SPAN_TEXT, - $options = 0) - { - if ($str) { - if (preg_match('/^http:\/\//i', $str) || is_file($str)) { - $this->load_file($str); - } else { - $this->load( - $str, - $lowercase, - $stripRN, - $defaultBRText, - $defaultSpanText, - $options - ); - } - } - // Forcing tags to be closed implies that we don't trust the html, but - // it can lead to parsing errors if we SHOULD trust the html. - if (!$forceTagsClosed) { - $this->optional_closing_array = array(); - } - - $this->_target_charset = $target_charset; - } - - function __destruct() - { - $this->clear(); - } - - // load html from string - function load( - $str, - $lowercase = true, - $stripRN = true, - $defaultBRText = DEFAULT_BR_TEXT, - $defaultSpanText = DEFAULT_SPAN_TEXT, - $options = 0) - { - global $debug_object; - - // prepare - $this->prepare($str, $lowercase, $defaultBRText, $defaultSpanText); - - // Per sourceforge http://sourceforge.net/tracker/?func=detail&aid=2949097&group_id=218559&atid=1044037 - // Script tags removal now preceeds style tag removal. - // strip out diff --git a/www/rompr/includes/license.html b/www/rompr/includes/license.html deleted file mode 100644 index efac406..0000000 --- a/www/rompr/includes/license.html +++ /dev/null @@ -1,20 +0,0 @@ -

LICENSE

-

IMPORTANT CHANGE TO LICENSE TERMS:
-This program is released under an alt-SpongWare license

-The use of alt-SpongWare is entirely according to the following conditions:
-

    -
  1. It is provided 'as is'. Nobody is responsible for anything it might or might not do.
  2. -
  3. It is provided free of charge but donations to the original developer are welcomed.
  4. -
  5. You may redistribute it but you may not, without permission of the author, distribute modified versions or provide it under any license other than this one, nor may you distribute or make available modifications to any of the component files.
  6. -
  7. You may not charge a fee or ask for any kind of remuneration nor accept any form of donation or gift in regards to distributing this software
  8. -
  9. There is no rule 6
  10. -
  11. Rule 7 is irrelevant
  12. -
  13. Adherence to 'coding standards' is to be regarded with suspicion.
  14. -
  15. If this program goes wrong in any way, for example it deletes all your data or perhaps it wipes the entire internet overnight and leaves the world a dead place, nobody is responsible. Deal with it. You use it at your own risk. As you do with, say, knives. Or cereal.
  16. -
  17. Use of any part of this software in any commercial context by any for-profit organisation without the express permission of the author is forbidden.
  18. -
  19. The use of the name RompЯ (or Rompr or RompR) or images of RompЯ in connection with any business or products, whether it be through advertising, marketing, sales literature, blog posts, website articles or any other form of media is srictly forbidden without the author's permission.
  20. -
    -AUTHOR CONTACT:
    -fatgerman@gmail.com -

    -
    \ No newline at end of file diff --git a/www/rompr/includes/podcastfunctions.php b/www/rompr/includes/podcastfunctions.php deleted file mode 100644 index 110c88b..0000000 --- a/www/rompr/includes/podcastfunctions.php +++ /dev/null @@ -1,1315 +0,0 @@ - $url)); - if (!$d->get_data_to_string()) { - header('HTTP/1.0 404 Not Found'); - print "Feed Not Found"; - logger::fail("PARSE_RSS", " Failed to Download ".$url); - exit; - } - - // For debugging - // file_put_contents('prefs/temp/feed.xml', $d->get_data()); - - if ($id) { - if (!is_dir('prefs/podcasts/'.$id)) { - mkdir('prefs/podcasts/'.$id, 0755); - } - file_put_contents('prefs/podcasts/'.$id.'/feed.xml', $d->get_data()); - } - $feed = simplexml_load_string($d->get_data()); - - logger::trace("PARSE_RSS", " Our LastPubDate is ".$lastpubdate); - - // Begin RSS Parse - $podcast = array(); - $podcast['FeedURL'] = $url; - $domain = preg_replace('#^(http://.*?)/.*$#', '$1', $url); - $ppg = $feed->channel->children('ppg', TRUE); - $m = $feed->channel->children('itunes', TRUE); - $sy = $feed->channel->children('sy', TRUE); - - // Automatic Refresh - if ($ppg && $ppg->seriesDetails) { - switch ($ppg->seriesDetails[0]->attributes()->frequency) { - case "hourly": - $podcast['RefreshOption'] = REFRESHOPTION_HOURLY; - break; - case "daily": - $podcast['RefreshOption'] = REFRESHOPTION_DAILY; - break; - case "weekly": - $podcast['RefreshOption'] = REFRESHOPTION_WEEKLY; - break; - case "monthly": - $podcast['RefreshOption'] = REFRESHOPTION_MONTHLY; - break; - default: - $podcast['RefreshOption'] = REFRESHOPTION_NEVER; - break; - } - } else if ($sy && $sy->updatePeriod) { - switch ($sy->updatePeriod) { - case "hourly": - $podcast['RefreshOption'] = REFRESHOPTION_HOURLY; - break; - case "daily": - $podcast['RefreshOption'] = REFRESHOPTION_DAILY; - break; - case "weekly": - $podcast['RefreshOption'] = REFRESHOPTION_WEEKLY; - break; - case "monthly": - $podcast['RefreshOption'] = REFRESHOPTION_MONTHLY; - break; - default: - $podcast['RefreshOption'] = REFRESHOPTION_NEVER; - break; - } - } else { - $podcast['RefreshOption'] = $prefs['default_podcast_refresh_mode']; - } - - // Episode Expiry - if ($ppg && $ppg->seriesDetails && $ppg->seriesDetails[0]->attributes()->daysLive) { - $podcast['DaysLive'] = $ppg->seriesDetails[0]->attributes()->daysLive; - } else { - $podcast['DaysLive'] = -1; - } - - // Image - if ($feed->channel->image) { - $podcast['Image'] = html_entity_decode($feed->channel->image->url); - logger::log("PARSE_RSS", " Image is ".$podcast['Image']); - } else if ($m && $m->image) { - $podcast['Image'] = $m->image[0]->attributes()->href; - logger::log("PARSE_RSS", " Image is ".$podcast['Image']); - } else { - $podcast['Image'] = "newimages/podcast-logo.svg"; - logger::trace("PARSE_RSS", " No Image Found"); - } - if (preg_match('#^/#', $podcast['Image'])) { - // Image link with a relative URL. Duh. - $podcast['Image'] = $domain.$image; - } - - // Artist - if ($m && $m->author) { - $podcast['Artist'] = (string) $m->author; - } else { - $podcast['Artist'] = ''; - } - - logger::log("PARSE_RSS", " Artist is ".$podcast['Artist']); - - // Category - $cats = array(); - if ($m && $m->category) { - for ($i = 0; $i < count($m->category); $i++) { - $cat = html_entity_decode((string) $m->category[$i]->attributes()->text); - if (!in_array($cat, $cats)) { - $cats[] = $cat; - } - } - } - $spaz = array_diff($cats, array('Podcasts')); - natsort($spaz); - $podcast['Category'] = implode(', ', $spaz); - logger::log("PARSE_RSS", " Category is ".$podcast['Category']); - - // Title - $podcast['Title'] = (string) $feed->channel->title; - - if ($id !== false) { - $albumimage = new baseAlbumImage(array( - 'artist' => 'PODCAST', - 'albumpath' => $id, - 'album' => $podcast['Title'] - )); - if ($albumimage->get_image_if_exists() === null) { - logger::mark("PODCASTS", "Replacing missing podcast image"); - download_image($podcast['Image'], $id, $podcast['Title']); - } - } - - // Description - $podcast['Description'] = (string) $feed->channel->description; - - // Tracks - $podcast['tracks'] = array(); - $podcast['LastPubDate'] = $lastpubdate; - if ($gettracks) { - foreach($feed->channel->item as $item) { - $track = array(); - - $m = $item->children('media', TRUE); - - // Track Title - $track['Title'] = (string) $item->title; - logger::log("PARSE_RSS", " Found track ".$track['Title']); - - // Track URI - $uri = null; - if ($m && $m->content) { - foreach ($m->content as $c) { - if (preg_match('/audio/',(string) $c->attributes()->type)) { - $uri = (string) $c->attributes()->url; - break; - } - } - } - if ($item->enclosure && $uri == null) { - $uri = (string) $item->enclosure->attributes()->url; - } - if ($item->link && $uri == null) { - $uri = (string) $item->link; - } - - $track['Link'] = $uri; - logger::log("PARSE_RSS", " Track URI is ".$uri); - - if ($item->guid) { - $track['GUID'] = $item->guid; - } else { - $track['GUID'] = $uri; - } - - if ($uri == null) { - logger::fail("PARSE_RSS", " Could Not Find URI for track!"); - continue; - } - - // Track Duration - $track['Duration'] = 0; - if ($m && $m->content) { - if ($m->content[0]->attributes()->duration) { - $track['Duration'] = (string) $m->content[0]->attributes()->duration; - } - } - $m = $item->children('itunes', TRUE); - if ($track['Duration'] == 0 && $m && $m->duration) { - $track['Duration'] = (string) $m->duration; - } - if (preg_match('/:/', $track['Duration'])) { - $timesplit = explode(':', $track['Duration']); - $timefactors = array(1, 60, 3600, 86400); - $hms = array_reverse($timesplit); - $time = 0; - foreach ($hms as $s) { - $mf = array_shift($timefactors); - if (is_numeric($s)) { - $time += ($s * $mf); - } else { - logger::warn("PARSE_RSS", " Non-numeric duration field encountered in podcast! -",$track['Duration']); - $time = 0; - break; - } - } - $track['Duration'] = $time; - } - - // Track Author - if ($m && $m->author) { - $track['Artist'] = (string) $m->author; - } else { - $track['Artist'] = $podcast['Artist']; - } - - // Track Publication Date - $t = strtotime((string) $item->pubDate); - logger::log("PARSE_RSS", " Track PubDate is ",(string) $item->pubDate,"(".$t.")"); - if ($t === false) { - logger::warn("PARSE_RSS", " ERROR - Could not parse episode Publication Date",(string) $item->pubDate); - } else if ($t > $podcast['LastPubDate']) { - logger::log("PARSE_RSS", " This is a new episode"); - } - if ($t === false || $podcast['LastPubDate'] === null || $t > $podcast['LastPubDate']) { - $podcast['LastPubDate'] = $t; - } - $track['PubDate'] = $t; - if ($item->enclosure && $item->enclosure->attributes()) { - $track['FileSize'] = $item->enclosure->attributes()->length; - } else { - $track['FileSize'] = 0; - } - - if ($m && $m->summary) { - $track['Description'] = $m->summary; - } else { - $track['Description'] = $item->description; - } - - $podcast['tracks'][] = $track; - } - } - - if ($lastpubdate !== null) { - if ($podcast['LastPubDate'] !== false && $podcast['LastPubDate'] == $lastpubdate) { - logger::mark("PARSE_RSS", "Podcast has not been updated since last refresh"); - return false; - } - } - - return $podcast; - -} - -function getNewPodcast($url, $subbed = 1, $gettracks = true) { - global $mysqlc, $prefs; - logger::mark("PODCASTS", "Getting podcast",$url); - $newpodid = null; - $podcast = parse_rss_feed($url, false, null, $gettracks); - $r = check_if_podcast_is_subscribed(array( 'feedUrl' => $podcast['FeedURL'], - 'collectionName' => $podcast['Title'], - 'artistName' => $podcast['Artist'])); - if (count($r) > 0) { - foreach ($r as $a) { - logger::fail("PODCASTS", " Already subscribed to podcast",$a['Title']); - } - header('HTTP/1.0 404 Not Found'); - print 'You are already to subscrtibed to '.$podcast['Title']; - exit(0); - } - logger::mark("PODCASTS", "Adding New Podcast",$podcast['Title']); - - $lastupdate = calculate_best_update_time($podcast); - - if (sql_prepare_query(true, null, null, null, - "INSERT INTO Podcasttable - (FeedURL, LastUpdate, Image, Title, Artist, RefreshOption, SortMode, DisplayMode, DaysLive, Description, Version, Subscribed, LastPubDate, Category) - VALUES - (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", - $podcast['FeedURL'], - calculate_best_update_time($podcast), - $podcast['Image'], - $podcast['Title'], - $podcast['Artist'], - $podcast['RefreshOption'], - $prefs['default_podcast_sort_mode'], - $prefs['default_podcast_display_mode'], - $podcast['DaysLive'], - $podcast['Description'], - ROMPR_PODCAST_TABLE_VERSION, - $subbed, - $podcast['LastPubDate'], - $podcast['Category'])) - { - $newpodid = $mysqlc->lastInsertId(); - if (is_dir('prefs/podcasts/'.$newpodid)) { - rrmdir('prefs/podcasts/'.$newpodid); - } - mkdir('prefs/podcasts/'.$newpodid, 0755); - download_image($podcast['Image'], $newpodid, $podcast['Title']); - if ($subbed == 1) { - foreach ($podcast['tracks'] as $track) { - if (sql_prepare_query(true, null, null, null, - "INSERT INTO PodcastTracktable - (PODindex, Title, Artist, Duration, PubDate, FileSize, Description, Link, Guid, New) - VALUES - (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", - $newpodid, $track['Title'], $track['Artist'], $track['Duration'], $track['PubDate'], - $track['FileSize'], $track['Description'], $track['Link'], $track['GUID'], 1)) - { - logger::log("PODCASTS", " Added Track ".$track['Title']); - } else { - logger::fail("PODCASTS", " FAILED Adding Track ".$track['Title']); - } - } - } - } - return $newpodid; -} - -function calculate_best_update_time($podcast) { - - // Note: this returns a value for LastUpdate, since that is what refresh is based on. - // The purpose of this is try to get the refresh in sync with the podcast's publication date. - - if ($podcast['LastPubDate'] === null) { - logger::log("PODCASTS", $podcast['Title'],"last pub date is null"); - return time(); - } - switch ($podcast['RefreshOption']) { - case REFRESHOPTION_NEVER: - case REFRESHOPTION_HOURLY: - case REFRESHOPTION_DAILY: - return time(); - break; - - } - logger::log("PODCASTS", "Working out best update time for ".$podcast['Title']); - $dt = new DateTime(date('c', $podcast['LastPubDate'])); - logger::log("PODCASTS", " Last Pub Date is ".$podcast['LastPubDate'].' ('.$dt->format('c').')'); - logger::log("PODCASTS", " Podcast Refresh interval is ".$podcast['RefreshOption']); - while ($dt->getTimestamp() < time()) { - switch ($podcast['RefreshOption']) { - - case REFRESHOPTION_WEEKLY: - $dt->modify('+1 week'); - break; - - case REFRESHOPTION_MONTHLY: - $dt->modify('+1 month'); - break; - - default: - logger::error("PODCASTS", " Unknown refresh option",$podcast['RefreshOption'],"for podcast ID",$podcast['podid']); - return time(); - break; - } - - } - logger::log("PODCASTS", " Worked out update time based on pubDate and RefreshOption: ".$dt->format('r').' ('.$dt->getTImestamp().')'); - logger::log("PODCASTS", " Give it an hour's grace"); - $dt->modify('+1 hour'); - - switch ($podcast['RefreshOption']) { - - case REFRESHOPTION_WEEKLY: - $dt->modify('-1 week'); - break; - - case REFRESHOPTION_MONTHLY: - $dt->modify('-1 month'); - break; - - } - - logger::log("PODCASTS", " Therefore setting lastupdate to: ".$dt->format('r').' ('.$dt->getTImestamp().')'); - - return $dt->getTimestamp(); - -} - -function download_image($url, $podid, $title) { - - $albumimage = new albumImage(array( - 'artist' => 'PODCAST', - 'albumpath' => $podid, - 'album' => $title, - 'source' => $url - )); - if ($albumimage->get_image_if_exists() === null) { - $albumimage->download_image(); - $albumimage->update_image_database(); - } - -} - -function check_podcast_upgrade($podetails, $podid, $podcast) { - if ($podetails->Version < ROMPR_PODCAST_TABLE_VERSION) { - if ($podcast === false) { - logger::blurt("PODCASTS", "Podcast needs to be upgraded, must re-parse the feed"); - $podcast = parse_rss_feed($podetails->FeedURL, $podid, null); - } - upgrade_podcast($podid, $podetails, $podcast); - } -} - -function refreshPodcast($podid) { - global $prefs; - check_refresh_pid(); - logger::shout("PODCASTS", "---------------------------------------------------"); - logger::shout("PODCASTS", "Refreshing podcast ",$podid); - $result = generic_sql_query("SELECT * FROM Podcasttable WHERE PODindex = ".$podid, false, PDO::FETCH_OBJ); - if (count($result) > 0) { - $podetails = $result[0]; - logger::log("PODCASTS", " Podcast title is ".$podetails->Title); - } else { - logger::error("PODCASTS", "ERROR Looking up podcast ".$podid); - return $podid; - } - $podcast = parse_rss_feed($podetails->FeedURL, $podid, $podetails->LastPubDate); - if ($podetails->Subscribed == 1 && $prefs['podcast_mark_new_as_unlistened']) { - generic_sql_query("UPDATE PodcastTracktable SET New = 0 WHERE PODindex = ".$podetails->PODindex); - } - if ($podcast === false) { - check_podcast_upgrade($podetails, $podid, $podcast); - // Podcast pubDate has not changed, hence we didn't re-parse the feed. - // Still calculate the best next update time - sql_prepare_query(true, null, null, null, "UPDATE Podcasttable SET LastUpdate = ? WHERE PODindex = ?", - calculate_best_update_time( - array( - 'LastPubDate' => $podetails->LastPubDate, - 'RefreshOption' => $podetails->RefreshOption, - 'Title' => $podetails->Title - ) - ), - $podid); - // Still check to keep (days to keep still needs to be honoured) - if (check_tokeep($podetails, $podid) || $prefs['podcast_mark_new_as_unlistened']) { - return $podid; - } else { - return false; - } - } - check_podcast_upgrade($podetails, $podid, $podcast); - if ($podetails->Subscribed == 0) { - sql_prepare_query(true, null, null, null, "UPDATE Podcasttable SET Description = ?, DaysLive = ?, RefreshOption = ?, LastUpdate = ?, LastPubDate = ? WHERE PODindex = ?", - $podcast['Description'], - $podcast['DaysLive'], - $podcast['RefreshOption'], - calculate_best_update_time($podcast), - $podcast['LastPubDate'], - $podid); - sql_prepare_query(true, null, null, null, "UPDATE PodcastTracktable SET New=?, JustUpdated=?, Listened = 0 WHERE PODindex=?", 1, 0, $podid); - } else { - sql_prepare_query(true, null, null, null, "UPDATE PodcastTracktable SET New=?, JustUpdated=? WHERE PODindex=?", 0, 0, $podid); - sql_prepare_query(true, null, null, null, "UPDATE Podcasttable SET Description=?, LastUpdate=?, DaysLive=?, LastPubDate=? WHERE PODindex=?", - $podcast['Description'], - calculate_best_update_time($podcast), - $podcast['DaysLive'], - $podcast['LastPubDate'], - $podid); - } - download_image($podcast['Image'], $podid, $podetails->Title); - foreach ($podcast['tracks'] as $track) { - $trackid = sql_prepare_query(false, null, 'PODTrackindex' , null, "SELECT PODTrackindex FROM PodcastTracktable WHERE Guid=? AND PODindex = ?", $track['GUID'], $podid); - if ($trackid !== null) { - logger::trace("PODCASTS", " Found existing track ".$track['Title']); - sql_prepare_query(true, null, null, null, "UPDATE PodcastTracktable SET JustUpdated=?, Duration=?, Link=? WHERE PODTrackindex=?",1,$track['Duration'], $track['Link'], $trackid); - } else { - if (sql_prepare_query(true, null, null, null, - "INSERT INTO PodcastTracktable - (JustUpdated, PODindex, Title, Artist, Duration, PubDate, FileSize, Description, Link, Guid, New) - VALUES - (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", - 1, $podid, $track['Title'], $track['Artist'], $track['Duration'], $track['PubDate'], - $track['FileSize'], $track['Description'], $track['Link'], $track['GUID'], 1)) - { - logger::log("PODCASTS", " Added Track ".$track['Title']); - } else { - logger::fail("PODCASTS", " FAILED Adding Track ".$track['Title']); - } - } - } - check_tokeep($podetails, $podid); - clear_refresh_pid(); - return $podid; -} - -function check_tokeep($podetails, $podid) { - $retval = false; - // Remove tracks that are no longer in the feed and haven't been downloaded - if ($podetails->Subscribed == 1) { - sql_prepare_query(true, null, null, null, "DELETE FROM PodcastTracktable WHERE PODindex=? AND JustUpdated=? AND Downloaded=?",$podid, 0, 0); - - // Remove tracks that have been around longer than DaysToKeep - honoring KeepDownloaded - if ($podetails->DaysToKeep > 0) { - $oldesttime = time() - ($podetails->DaysToKeep * 86400); - $numthen = simple_query("COUNT(PODTrackindex)", "PodcastTracktable", 'Deleted = 0 AND PODindex', $podid, 0); - $qstring = "UPDATE PodcastTracktable SET Deleted=1 WHERE PODindex = ".$podid." AND PubDate < ".$oldesttime." AND Deleted = 0"; - if ($podetails->KeepDownloaded == 1) { - $qstring .= " AND Downloaded = 0"; - } - generic_sql_query($qstring, true); - $numnow = simple_query("COUNT(PODTrackindex)", "PodcastTracktable", 'Deleted = 0 AND PODindex', $podid, 0); - if ($numnow != $numthen) { - logger::log("PODCASTS", " Old episodes were removed from podcast ID ".$podid); - $retval = true; - } - } - - // Remove tracks where there are more than NumToKeep - honoring KeepDownloaded - if ($podetails->NumToKeep > 0) { - $getrid = 0; - $qstring = "SELECT COUNT(PODTrackindex) AS num FROM PodcastTracktable WHERE PODindex=".$podid." AND Deleted = 0"; - if ($podetails->KeepDownloaded == 1) { - $qstring .= " AND Downloaded = 0"; - } - $num = generic_sql_query($qstring, false, null, 'num', 0); - $getrid = $num - $podetails->NumToKeep; - logger::log("PODCASTS", " Num To Keep is ".$podetails->NumToKeep." and there are ".$num." episodes that can be pruned. Removing ".$getrid); - if ($getrid > 0) { - $qstring = "SELECT PODTrackindex FROM PodcastTracktable WHERE PODindex=".$podid." AND Deleted = 0"; - if ($podetails->KeepDownloaded == 1) { - $qstring .= " AND Downloaded=0"; - } - $qstring .= " ORDER BY PubDate ASC LIMIT ".$getrid; - $pods = sql_get_column($qstring, 0); - foreach ($pods as $i) { - logger::trace("PODCASTS", " Removing Track ".$i); - generic_sql_query("UPDATE PodcastTracktable SET Deleted=1 WHERE PODTrackindex=".$i, true); - $retval = true; - } - } - } - } - return $retval; -} - -function upgrade_podcast($podid, $podetails, $podcast) { - $v = $podetails->Version; - while ($v < ROMPR_PODCAST_TABLE_VERSION) { - switch ($v) { - case 1: - logger::mark("PODCASTS", "Updating Podcast ".$podetails->Title." to version 2"); - foreach ($podcast['tracks'] as $track) { - $t = sql_prepare_query(false, PDO::FETCH_OBJ, null, null, "SELECT * FROM PodcastTracktable WHERE Link=? OR OrigLink=?", $track['Link'], $track['Link']); - foreach($t as $result) { - logger::log("PODCASTS", " Updating Track ".$result->Title); - logger::trace("PODCASTS", " GUID is ".$track['GUID']); - $dlfilename = null; - if ($result->Downloaded == 1) { - $dlfilename = basename($result->Link); - logger::log("PODCASTS", " Track has been downloaded to ".$dlfilename); - } - sql_prepare_query(true, null, null, null, "UPDATE PodcastTracktable SET Link = ?, Guid = ?, Localfilename = ?, OrigLink = NULL WHERE PODTrackindex = ?", $track['Link'], $track['GUID'], $dlfilename, $result->PODTrackindex); - } - } - generic_sql_query("UPDATE Podcasttable SET Version = 2 WHERE PODindex = ".$podid, true); - $v++; - break; - - case 2: - // This will have been done by the function below - $v++; - break; - - case 3: - logger::mark("PODCASTS", "Updating Podcast ".$podetails->Title." to version 4"); - sql_prepare_query(true, null, null, null, "UPDATE Podcasttable SET Version = ?, Category = ? WHERE PODindex = ?", 4, $podcast['Category'], $podid); - $v++; - break; - - } - } -} - -function upgrade_podcasts_to_version() { - $pods = generic_sql_query('SELECT * FROM Podcasttable WHERE Subscribed = 1 AND Version < '.ROMPR_PODCAST_TABLE_VERSION); - foreach ($pods as $podcast) { - $v = $podcast['Version']; - while ($v < ROMPR_PODCAST_TABLE_VERSION) { - switch ($v) { - case 2; - logger::mark("PODCASTS", " Updating Podcast ".$podcast['Title']." to version 3"); - $newest_track = generic_sql_query("SELECT PubDate FROM PodcastTracktable WHERE PODindex = ".$podcast['PODindex']." ORDER BY PubDate DESC LIMIT 1"); - $podcast['LastPubDate'] = $newest_track[0]['PubDate']; - logger::log("PODCASTS", " Last episode for this podcast was published on ".date('c', $podcast['LastPubDate'])); - switch($podcast['RefreshOption']) { - case REFRESHOPTION_WEEKLY: - case REFRESHOPTION_MONTHLY: - $podcast['LastUpdate'] = calculate_best_update_time($podcast); - break; - } - generic_sql_query("UPDATE Podcasttable SET LastUpdate = ".$podcast['LastUpdate'].", LastPubDate = ".$podcast['LastPubDate'].", Version = 3 WHERE PODindex = ".$podcast['PODindex']); - $v++; - break; - - case 3; - // Upgrade to version 4 can only happen after feed has been re-parsed - $v++; - break; - } - } - } -} - -function outputPodcast($podid, $do_searchbox = true) { - $result = generic_sql_query("SELECT * FROM Podcasttable WHERE PODindex = ".$podid, false, PDO::FETCH_OBJ); - foreach ($result as $obj) { - doPodcast($obj, $do_searchbox); - } -} - -function doPodcast($y, $do_searchbox) { - - if ($y->Subscribed == 0) { - logger::mark("PODCASTS", "Getting feed for unsubscribed podcast ".$y->FeedURL); - refreshPodcast($y->PODindex); - $a = generic_sql_query("SELECT * FROM Podcasttable WHERE PODindex = ".$y->PODindex, false, PDO::FETCH_OBJ); - if (count($a) > 0) { - $y = $a[0]; - } else { - logger::fail("PODCASTS", "ERROR looking up podcast",$y->FeedURL); - return; - } - } - - $aa = $y->Artist; - if ($aa != '') { - $aa = $aa . ' - '; - } - $pm = $y->PODindex; - trackControlHeader('','','podcast_'. $pm,array(array('Image' => $y->Image))); - print '
    '.format_text($y->Description).'
    '; - if ($y->Subscribed == 1) { - print '
    '; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print '
    '; - print ''; - print '
    '; - - print ' - '; -include("includes/podcasts.php"); -?> - - -
    - - -
    - - - '; - -if ($prefs['player_backend'] == "mopidy") { - print '
    Music From Your Collection
    '; -} -?> -
    - - -Music From Spotify'; -} -?> -
    - -Music From Everywhere'; - print '
    Play From These Sources:
    '; -} -?> -
    - -
    - - - -
    - -

    '.get_int_text('label_emptyinfo').'

    '; -?> -
    -
    - - -
    - -
    - -
    -
    -
    '.get_int_text("lastfm_addtagslabel"); -?> -
    - -
    diff --git a/www/rompr/skins/desktop/skin.requires b/www/rompr/skins/desktop/skin.requires deleted file mode 100644 index 83ad392..0000000 --- a/www/rompr/skins/desktop/skin.requires +++ /dev/null @@ -1,5 +0,0 @@ -jquery/jquery.hotkeys.js -jquery/jquery.mCustomScrollbar.concat.min-3.1.5.js -ui/hotkeys.js -css/jquery.mCustomScrollbar.css -css/tipTip.css diff --git a/www/rompr/skins/desktop/skinvars.php b/www/rompr/skins/desktop/skinvars.php deleted file mode 100644 index 71dce08..0000000 --- a/www/rompr/skins/desktop/skinvars.php +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/www/rompr/skins/desktop/ui_elements.php b/www/rompr/skins/desktop/ui_elements.php deleted file mode 100644 index 01420cd..0000000 --- a/www/rompr/skins/desktop/ui_elements.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/www/rompr/skins/fruit/skin.css b/www/rompr/skins/fruit/skin.css deleted file mode 100644 index e2e631c..0000000 --- a/www/rompr/skins/fruit/skin.css +++ /dev/null @@ -1,622 +0,0 @@ -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#infobar { - width:100%; - padding-top:4px; - margin:0px; -} - -#progress { - font-size:4px; - width: 100%; -} - -#playbackTime { - font-weight:bold; - font-size:11px; - padding-top:1px; - height:15px; - line-height:15px; - text-align:center; - width:100%; - height:15px; -} - -#albumcover { - margin:0px; - z-index:500; -} - -#upcoming { - max-width:35%; - min-width:20%; - height:100%; - overflow:hidden; - font-size:90%; -} - -#uptrackcount, #uptimecount { - font-weight:bold; -} - -#upcontents { - line-height:110%; -} - -#albumpicture { - width: auto; -} - -.timebox { - min-width: 4em; - font-size:9pt; - font-weight:bold; - line-height:100%; -} - -.tboxl { - text-align:left; -} - -.tboxr { - text-align:right; -} - -#nowplaying { - font-size:8pt; - padding-top:0px; - padding-bottom:0px; - height:60px; - width:100%; - overflow:hidden; - box-sizing:border-box; - border-right:4px solid transparent; - border-left:4px solid transparent; -} - -#patrickmoore { - box-shadow: none !important; -} - -#firefoxisshitwrapper { - overflow:hidden; -} - -#nptext { - width:auto; - overflow:hidden; -} - -#gronky { - margin-left:8px; - margin-right:8px; - font-size:8pt; -} - -#amontobin { - padding-top:4px; -} - -#infopane { - height:100%; - overflow:auto; - position:relative; - display:block; -} - -#dbtags { - overflow:hidden; - opacity:0.9; - font-size:8pt; - height:22px; - line-height:22px; -} - -#tagadder { - width:400px; - padding-right:8px; - padding-bottom:4px; -} - -#playcount { - overflow:hidden; - opacity:0.9; - font-size:8pt; - height:22px; - line-height:22px; -} - -#lastfm { - float:left; - margin-left:4px; - padding-top:1px; -} - -#lastfm img { - margin-right:2px; - margin-left:2px; -} - -#headerbar { - padding:0px; - margin:0px; - width:100%; - height:36px; -} - -#bottompage { - width:100%; -} - -#sources { - height:100%; - overflow:auto; -} - -#volumecontrol { - width:14px; - margin-left:0px; - margin-right:0px; - font-size:8px; -} - -#notifications { - position:absolute; - width:50%; - max-width:500px; - padding:8px; - top:0px; - display:none; - z-index:2000; - left: 0; - right: 0; - margin: 0 auto; -} - -#keybindtable { - margin-bottom:1em; -} - -#outputbox { - max-width:20%; -} - -#mobileplaylistcontrols -{ - display:none; -} - -#plmode { - font-size:8pt; - height:22px; - line-height:22px; -} - -#audiobooks .podcastresume>.fixed -{ - padding-left: 24px; -} - -#audiobooks .podcastresume>.expand -{ - margin-right: 4px; -} - -#flowcontrols { - height: 36px; -} - -#flowcontrols i { - max-height: 24px; - margin-top:4px; -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.infobarlayout { - margin-left:6px; - margin-right:6px; - margin-top:0px; - margin-bottom:0px; - padding-top:0px; - padding-bottom:2px; - padding-left:0px; - padding-right:0px; - height:90px; -} - -.infobarnoheight { - margin-left:6px; - margin-right:6px; - margin-top:2px; - margin-bottom:2px; - padding-top:0px; - padding-left:0px; - padding-right:0px; -} - -.nopadright { - margin-right:0px !important; -} - -.tinycover -{ - margin-right:8px; - width:28px; - height:auto; -} - -.controlbutton-left -{ - margin-right:6px; - margin-left:6px; -} - -.topstats { - float:left; - margin-right:8px; - margin-top:1px; -} - - -.tagremover { - margin-left:0.5em; -} - - -.clicktext { - font-size:7pt; - font-weight:bold; -} - -.topimg { - margin-right:4px; - margin-left:4px; - margin-bottom:2px; - cursor: pointer; - vertical-align:middle; -} - -.smallcover { - transition: width 0.5s ease; - max-width:300px; -} - -.dropmenu { - padding-left:16px; -} - -.npicon { - padding:0px; - margin-top:0px; - margin-left:0px; - margin-bottom:0px; - margin-right:4px; - height:20px; - width:20px; - vertical-align:middle; -} - -.playlisticon { - padding:0px; - margin-right:4px; - margin-bottom:2px; - margin-top:2px; - vertical-align:middle; - height: 12px; - width: 12px; -} - -.collectionicon { - padding:0px; - margin-right:4px; - margin-bottom:2px; - margin-top:2px; - vertical-align:middle; - width:16px; - height:16px; -} - -.playlisticonr { - padding:0px; - margin-left:4px; - margin-right:2px; - margin-bottom:2px; - margin-top:2px; - vertical-align:middle; - height: 12px; - width: 12px; -} - -.rating-icon-big { - height: 20px; - width: 100px; - cursor: pointer; - vertical-align:middle; -} - -.rating-icon-small { - height: 14px; - width: 70px; - cursor: pointer; - vertical-align:middle; -} - -.headercontainer { - height:90%; - box-sizing:border-box; -} - -.background-left { - background-position: left !important; - max-height: 24px; -} - -#sourcescontrols i, #chooserbuttons i { - max-width: 24px; -} - -i.topdrop -{ - position: relative; - font-style: normal; -} - -.dragmenu { - cursor:move; -} - -.menuitem { - font-weight:bold; - margin:0px; - padding-left:8px; - padding-right:0px; - padding-top:2px; - padding-bottom:2px; - -webkit-box-align:center; - align-items: center; -} - -.prearranger { - display:none; -} - -.playlistitem.menuitem { - align-items: inherit !important; -} - -.playlistalbum { - font-weight:bold; - margin:0px; - padding-left:4px; - padding-right:0px; - padding-top:4px; - padding-bottom:2px; - -webkit-box-align:stretch; - align-items: stretch; -} - -.mh { - margin-right:6px; - display:block; - margin-top:2px; - margin-bottom:2px; -} - -.menu { - width:14px; - height: 14px; - vertical-align:middle; - cursor:pointer; -} - -.ninesix { - font-size:96%; - padding-top:2px; -} - -.indent { - margin-left:16px; -} - -.padright { - padding-right:4px; -} - -.buttonchange { - text-align:center; -} - -.outhack { - width:14px; - height:14px; - margin-top:2px; -} - -.cshrinker { - max-width:400px; -} - -.smallpluginicon { - padding:0px; - margin-right:4px; - margin-bottom:2px; - margin-top:1px; - vertical-align:middle; -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -.info-box-fixed { - -webkit-box-flex:0; - flex-grow: 0; - flex-shrink:0; -} - -.info-border-right { - border-right: 1px solid #454545; - padding-right:1em; - max-width:240px; -} - -.info-box-expand { - -webkit-box-flex:1.0; - flex-grow: 1; - flex-shrink: 1; - flex-basis: auto; - -} - -.info-detail-layout { - margin-top:8px; -} - -.cleft { - border-left: 1px solid #454545; - padding-left:1em; - margin-left:1em; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.normalmenu -{ - width:25vw; - max-width:360px; - min-width:240px; -} - -div.widemenu -{ - width:40vw; - max-width:640px; - min-width:400px; -} - -div.leftmenu -{ - top: 30px; - left: 0px; -} - -div.rightmenu -{ - top:30px; - right:-12px; -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podicon { - padding:0px; - margin:2px; - height:16px; - width:16px; - vertical-align:middle; -} - -/* -===================================================================== -= Responsive Layout -===================================================================== -*/ - -@media screen and (max-width: 480px) { - #notifications { - width: 90% !important; - } -} - -@media screen and (max-height: 1099px) { - .infobarlayout { - height:140px; - } - #albumcover { - height: 162px; - } - #albumpicture { - height: 158px; - padding: 2px; - } - #nowplaying { - height: 110px; - } - - .controlbutton-small - { - width:24px !important; - height:24px !important; - margin-top:6px !important; - margin-left:4px !important; - } - - .controlbutton-main - { - width:32px !important; - height:32px !important; - margin-top:6px !important; - } - - .smallpluginicon - { - height: 20px !important; - width: 18px !important; - } -} - -@media screen and (min-height: 1100px) { - .infobarlayout { - height:160px; - } - #albumcover { - height: 182px; - } - #albumpicture { - height: 178px; - padding: 2px; - } - #nowplaying { - height: 130px; - } - .controlbutton-small - { - width:28px !important; - height:28px !important; - margin-top:6px !important; - margin-left:4px !important; - } - - .controlbutton-main - { - width:36px !important; - height:36px !important; - margin-top:6px !important; - } - - .smallpluginicon - { - height: 24px !important; - width: 18px !important; - } -} - diff --git a/www/rompr/skins/fruit/skin.js b/www/rompr/skins/fruit/skin.js deleted file mode 100644 index c5d2bb3..0000000 --- a/www/rompr/skins/fruit/skin.js +++ /dev/null @@ -1,526 +0,0 @@ - -jQuery.fn.animatePanel = function(options) { - var settings = $.extend({},options); - var panel = this.attr("id"); - var opanel = panel; - panel = panel.replace(/controls/,''); - if (settings[panel] > 0 && this.is(':hidden')) { - this.show(); - } - this.animate({width: settings[panel]+"%"}, - { - duration: settings.speed[panel], - always: function() { - if (settings[panel] == 0) { - $(this).hide(); - } else { - if (opanel == "infopane") browser.rePoint(); - if (opanel.match(/controls/)) { - var i = (prefs.sourceshidden) ? "icon-angle-double-right" : "icon-angle-double-left"; - $("#expandleft").removeClass("icon-angle-double-right icon-angle-double-left").addClass(i); - } - } - } - } - ); -} - -function showHistory() { - -} - -var layoutProcessor = function() { - - function showPanel(source) { - $('#'+source).fadeIn('fast'); - } - - function flashTrack(uri, album) { - infobar.markCurrentTrack(); - var thing = uri ? uri : album; - $('[name="'+thing+'"]').makeFlasher({flashtime: 0.5, repeats: 5}); - // The timeout is so that markCurrentTrack doesn't fuck it up - these often - // have CSS transitions that affect the scrollbar size - setTimeout(function() { - layoutProcessor.scrollCollectionTo($('[name="'+thing+'"]')); - }, 1000); - } - - function setBottomPanelWidths() { - var widths = getPanelWidths(); - $("#sources").css("width", widths.sources+"%"); - $("#sourcescontrols").css("width", widths.sources+"%"); - $("#infopane").css("width", widths.infopane+"%"); - $("#infopanecontrols").css("width", widths.infopane+"%"); - } - - function getPanelWidths() { - var sourcesweight = (prefs.sourceshidden) ? 0 : 1; - var browserweight = (prefs.hidebrowser) ? 0 : 1; - var sourceswidth = prefs.sourceswidthpercent*sourcesweight; - var browserwidth = (100 - sourceswidth)*browserweight; - if (browserwidth < 0) browserwidth = 0; - return ({infopane: browserwidth, sources: sourceswidth}); - } - - function animatePanels() { - var widths = getPanelWidths(); - widths.speed = { sources: 400, infopane: 400 }; - $("#sources").animatePanel(widths); - $("#sourcescontrols").animatePanel(widths); - $("#infopane").animatePanel(widths); - $("#infopanecontrols").animatePanel(widths); - } - - var my_scrollers = [ "#sources", "#infopane", ".topdropmenu", ".drop-box" ]; - var rtime = ''; - var ptime = ''; - var headers = Array(); - var currheader = 0; - var headertimer; - - return { - - supportsDragDrop: true, - hasCustomScrollbars: true, - usesKeyboard: true, - sortFaveRadios: true, - openOnImage: false, - - changeCollectionSortMode: function() { - collectionHelper.forceCollectionReload(); - }, - - postAlbumActions: function() { - - }, - - afterHistory: function() { - setTimeout(function() { $("#infopane").mCustomScrollbar("scrollTo",0) }, 500); - }, - - addInfoSource: function(name, obj) { - $("#chooserbuttons").append($('', { - onclick: "browser.switchsource('"+name+"')", - title: language.gettext(obj.text), - class: obj.icon+' topimg sep expand tooltip', - id: "button_source"+name - })); - }, - - setupInfoButtons: function() { - $("#button_source"+prefs.infosource).addClass("currentbun"); - }, - - goToBrowserPanel: function(panel) { - $("#infopane").mCustomScrollbar('update'); - $("#infopane").mCustomScrollbar("scrollTo","#"+panel+"information"); - }, - - goToBrowserPlugin: function(panel) { - setTimeout( function() { layoutProcessor.goToBrowserPanel(panel) }, 1000); - }, - - goToBrowserSection: function(section) { - $("#infopane").mCustomScrollbar("scrollTo",section); - }, - - notifyAddTracks: function() { - if (!playlist.radioManager.isRunning()) { - clearTimeout(headertimer); - $('#plmode').fadeOut(500, function() { - $('#plmode').html(language.gettext('label_addingtracks')).fadeIn(500); - }); - } - }, - - toggleAudioOutpts: function() { - prefs.save({outputsvisible: !$('#outputbox').is(':visible')}); - $("#outputbox").animate({width: 'toggle'},'fast',function() { - infobar.biggerize(); - }); - }, - - setTagAdderPosition: function(position) { - $("#tagadder").css({top: Math.min(position.y+8, $(window).height() - $('#tagadder').height()), - left: Math.min($(window).width() - $('#tagadder').width(), position.x-16)}); - }, - - setPlaylistHeight: function() { - $('#phacker').fanoogleMenus(); - }, - - playlistControlHotKey: function(button) { - if (!$("#playlistbuttons").is(':visible')) { - togglePlaylistButtons() - } - $("#"+button).tirgger('click'); - }, - - updateInfopaneScrollbars: function() { - $('#infopane').mCustomScrollbar('update'); - }, - - playlistLoading: function() { - infobar.smartradio(language.gettext('label_smartsetup')); - }, - - scrollPlaylistToCurrentTrack: function() { - if (prefs.scrolltocurrent) { - var scrollto = playlist.getCurrentTrackElement();; - if (scrollto.length > 0) { - debug.log("LAYOUT","Scrolling Playlist To Song:",player.status.songid); - $('#phacker').mCustomScrollbar("stop"); - $('#phacker').mCustomScrollbar("update"); - var pospixels = Math.round(scrollto.position().top - ($("#sortable").parent().parent().height()/2)); - pospixels = Math.min($("#sortable").parent().height(), Math.max(pospixels, 0)); - $('#phacker').mCustomScrollbar( - "scrollTo", - pospixels, - { scrollInertia: 0 } - ); - } - } - }, - - preHorse: function() { - - }, - - hideBrowser: function() { - - }, - - addCustomScrollBar: function(value) { - $(value).mCustomScrollbar({ - theme: "light-thick", - scrollInertia: 300, - contentTouchScroll: 25, - mouseWheel: { - scrollAmount: parseInt(prefs.wheelscrollspeed), - }, - alwaysShowScrollbar: 1, - advanced: { - updateOnContentResize: true, - updateOnImageLoad: false, - autoScrollOnFocus: false, - autoUpdateTimeout: 500, - } - }); - }, - - scrollCollectionTo: function(jq) { - if (jq) { - debug.log("LAYOUT","Scrolling Collection To",jq, jq.position().top,$("#collection").parent().parent().parent().height()/2); - var pospixels = Math.round(jq.position().top - - $("#collection").parent().parent().parent().height()/2); - debug.log("LAYOUT","Scrolling Collection To",pospixels); - $("#sources").mCustomScrollbar('update').mCustomScrollbar('scrollTo', pospixels, - { scrollInertia: 1000, - scrollEasing: 'easeOut' } - ); - } else { - debug.log("LAYOUT","Was asked to scroll collection to something non-existent",2); - } - }, - - expandInfo: function(side) { - switch(side) { - case "left": - var p = !prefs.sourceshidden; - prefs.save({sourceshidden: p}); - break; - } - animatePanels(); - return false; - }, - - sourceControl: function(source) { - if ($('#'+source).length == 0) { - prefs.save({chooser: 'albumlist'}); - source = 'albumlist'; - } - if (source != prefs.chooser) { - $('#'+prefs.chooser).fadeOut('fast', function() { - showPanel(source); - prefs.save({chooser: source}); - }); - } else { - showPanel(source); - } - return false; - }, - - adjustLayout: function() { - var ws = getWindowSize(); - // Height of the bottom pane (chooser, info, playlist container) - var newheight = ws.y - $("#bottompage").offset().top; - $("#bottompage").css("height", newheight+"px"); - var newwidth = ws.x - $('#infobar').offset().left; - $('#infobar').css('width', newwidth+'px'); - infobar.biggerize(); - browser.rePoint(); - $('.topdropmenu').fanoogleMenus(); - }, - - displayCollectionInsert: function(details) { - - debug.log("COLLECTION","Displaying New Insert",details); - layoutProcessor.sourceControl('albumlist'); - if (prefs.sortcollectionby == "artist" && $('i[name="aartist'+details.artistindex+'"]').isClosed()) { - debug.log("COLLECTION","Opening Menu","aartist"+details.artistindex); - doAlbumMenu(null, $('i[name="aartist'+details.artistindex+'"]'), function() { - if ($('i[name="aalbum'+details.albumindex+'"]').isClosed()) { - debug.log("COLLECTION","Opening Menu","aalbum"+details.albumindex); - doAlbumMenu(null, $('i[name="aalbum'+details.albumindex+'"]'), function() { - flashTrack(details.trackuri, 'aalbum'+details.albumindex); - }); - } else { - flashTrack(details.trackuri, 'aalbum'+details.albumindex); - } - }); - } else if ($('i[name="aalbum'+details.albumindex+'"]').isClosed()) { - debug.log("COLLECTION","Opening Menu","aalbum"+details.albumindex); - doAlbumMenu(null, $('i[name="aalbum'+details.albumindex+'"]'), function() { - flashTrack(details.trackuri,'aalbum'+details.albumindex); - }); - } else { - flashTrack(details.trackuri,'aalbum'+details.albumindex); - } - }, - - playlistupdate: function(upcoming) { - var time = 0; - for(var i in upcoming) { - time += upcoming[i].duration; - } - if (time > 0) { - headers['upcoming'] = "Up Next : "+upcoming.length+" tracks, "+formatTimeString(time); - } else { - headers['upcoming'] = ''; - } - layoutProcessor.doFancyHeaderStuff(); - }, - - doFancyHeaderStuff: function() { - clearTimeout(headertimer); - var lines = Array(); - for (var i in headers) { - if (headers[i] != '') { - lines.push(headers[i]); - } - } - if (lines.length == 0 && $('#plmode').html() != '') { - $('#plmode').fadeOut(500, function() { - $('#plmode').html('').fadeIn(500); - }); - } else if (lines.length == 1 && $('#plmode').html() != lines[0]) { - $('#plmode').fadeOut(500, function() { - $('#plmode').html(lines[0]).fadeIn(500); - }); - } else { - currheader++; - if (currheader >= lines.length) { - currheader = 0; - } - if ($('#plmode').html() != lines[currheader]) { - $('#plmode').fadeOut(500, function() { - $('#plmode').html(lines[currheader]).fadeIn(500, function() { - headertimer = setTimeout(layoutProcessor.doFancyHeaderStuff, 5000); - }); - }); - } else { - headertimer = setTimeout(layoutProcessor.doFancyHeaderStuff, 5000); - } - } - }, - - setProgressTime: function(stats) { - if (stats !== null) { - rtime = stats.remainString; - ptime = stats.durationString; - $("#playposss").html(stats.progressString); - } - if (prefs.displayremainingtime) { - $("#tracktimess").html(rtime); - } else { - $("#tracktimess").html(ptime); - } - }, - - toggleRemainTime: function() { - prefs.save({displayremainingtime: !prefs.displayremainingtime}); - layoutProcessor.setProgressTime(null); - }, - - setRadioModeHeader: function(html) { - if (html != headers['radiomode']) { - headers['radiomode'] = html; - layoutProcessor.doFancyHeaderStuff(); - } - }, - - postAlbumMenu: function(element) { - debug.trace("SKIN","Post Album Menu Thing",element.next()); - if (element.next().hasClass('smallcover')) { - var imgsrc = element.next().children('img').attr('src'); - var aa = new albumart_translator(imgsrc); - if (element.isClosed()) { - if (imgsrc) { - element.next().children('img').attr('src', aa.getSize('small')); - } - element.next().css('width','50%'); - element.next().css('width',''); - element.next().children('img').css('width', ''); - } else { - if (imgsrc) { - element.next().children('img').attr('src', aa.getSize('medium')); - } - element.next().css('width','50%'); - element.next().children('img').css('width', '100%'); - } - } - }, - - makeCollectionDropMenu: function(element, name) { - var x = $('#'+name); - // If the dropdown doesn't exist then create it - if (x.length == 0) { - if (element.parent().hasClass('album1')) { - var c = 'dropmenu notfilled album1'; - } else if (element.parent().hasClass('album2')) { - var c = 'dropmenu notfilled album2'; - } else { - var c = 'dropmenu notfilled'; - } - var t = $('
    ', {id: name, class: c}).insertAfter(element.parent()); - } - }, - - getArtistDestinationDiv: function(menutoopen) { - if (prefs.sortcollectionby == "artist") { - return $("#"+menutoopen).parent(); - } else { - return $("#"+menutoopen); - } - }, - - initialise: function() { - if (prefs.outputsvisible) { - layoutProcessor.toggleAudioOutpts(); - } - $("#sortable").disableSelection(); - setDraggable('#collection'); - setDraggable('#filecollection'); - setDraggable('#searchresultholder'); - setDraggable("#podcastslist"); - setDraggable("#audiobooks"); - setDraggable("#somafmlist"); - setDraggable("#communityradiolist"); - setDraggable("#icecastlist"); - setDraggable("#tuneinlist"); - setDraggable('#artistinformation'); - setDraggable('#albuminformation'); - setDraggable('#storedplaylists'); - - $("#sortable").acceptDroppedTracks({ - scroll: true, - scrollparent: '#phacker' - }); - $("#sortable").sortableTrackList({ - items: '.sortable', - outsidedrop: playlist.dragstopped, - insidedrop: playlist.dragstopped, - scroll: true, - scrollparent: '#phacker', - scrollspeed: 80, - scrollzone: 120 - }); - - $("#pscroller").acceptDroppedTracks({ - ondrop: playlist.draggedToEmpty, - coveredby: '#sortable' - }); - - animatePanels(); - - $(".topdropmenu").floatingMenu({ - handleClass: 'dragmenu', - addClassTo: 'configtitle', - siblings: '.topdropmenu' - }); - - $("#tagadder").floatingMenu({ - handleClass: 'configtitle', - handleshow: false - }); - - $(".stayopen").not('.dontstealmyclicks').on('click', function(ev) {ev.stopPropagation() }); - - // $(".enter").on('keyup', onKeyUp ); - $.each(my_scrollers, - function( index, value ) { - layoutProcessor.addCustomScrollBar(value); - }); - - $("#sources").find('.mCSB_draggerRail').resizeHandle({ - adjusticons: ['#sourcescontrols', '#infopanecontrols'], - side: 'left', - donefunc: setBottomPanelWidths - }); - - shortcuts.load(); - $("#collectionsearcher input").on('keyup', function(event) { - if (event.keyCode == 13) { - player.controller.search('search'); - } - } ); - setControlClicks(); - $('.choose_albumlist').on('click', function(){layoutProcessor.sourceControl('albumlist')}); - $('.choose_searcher').on('click', function(){layoutProcessor.sourceControl('searcher')}); - $('.choose_filelist').on('click', function(){layoutProcessor.sourceControl('filelist')}); - $('.choose_radiolist').on('click', function(){layoutProcessor.sourceControl('radiolist')}); - $('.choose_podcastslist').on('click', function(){layoutProcessor.sourceControl('podcastslist')}); - $('.choose_audiobooklist').on('click', function(){layoutProcessor.sourceControl('audiobooklist')}); - $('.choose_playlistslist').on('click', function(){layoutProcessor.sourceControl('playlistslist')}); - $('.choose_pluginplaylistslist').on('click', function(){layoutProcessor.sourceControl('pluginplaylistslist')}); - $('.open_albumart').on('click', openAlbumArtManager); - $("#ratingimage").on('click', nowplaying.setRating); - $('.icon-rss.npicon').on('click', function(){podcasts.doPodcast('nppodiput')}); - $('#expandleft').on('click', function(){layoutProcessor.expandInfo('left')}); - $('.clear_playlist').on('click', playlist.clear); - $("#playlistname").parent().next('button').on('click', player.controller.savePlaylist); - - document.body.addEventListener('drop', function(e) { - e.preventDefault(); - }, false); - $('#albumcover').on('dragenter', infobar.albumImage.dragEnter); - $('#albumcover').on('dragover', infobar.albumImage.dragOver); - $('#albumcover').on('dragleave', infobar.albumImage.dragLeave); - $("#albumcover").on('drop', infobar.albumImage.handleDrop); - $("#tracktimess").on('click', layoutProcessor.toggleRemainTime); - $(document).on('mouseenter', '.clearbox', makeHoverWork); - $(document).on('mouseleave', '.clearbox', makeHoverWork); - $(document).on('mousemove', '.clearbox', makeHoverWork); - $(document).on('mouseenter', '.combobox-entry', makeHoverWork); - $(document).on('mouseleave', '.combobox-entry', makeHoverWork); - $(document).on('mousemove', '.combobox-entry', makeHoverWork); - $(document).on('mouseenter', '.tooltip', makeToolTip); - $(document).on('mouseleave', '.tooltip', stopToolTip); - $('#plmode').detach().appendTo('#amontobin').addClass('tright'); - $('#volume').volumeControl({ - orientation: 'vertical', - command: player.controller.volume - }); - }, - - createPluginHolder: function(icon, title, id, panel) { - var d = $('
    ', {class: 'topdrop'}).prependTo('#righthandtop'); - var i = $('', {class: 'tooltip', title: title, id: id}).appendTo(d); - i.addClass(icon); - i.addClass('smallpluginicon clickicon'); - return d; - } - - } -}(); diff --git a/www/rompr/skins/fruit/skin.php b/www/rompr/skins/fruit/skin.php deleted file mode 100644 index 99df884..0000000 --- a/www/rompr/skins/fruit/skin.php +++ /dev/null @@ -1,322 +0,0 @@ - - - - -
    - -
    -
    -
    - -
    -
    -
    -'; - print ''; - print ''; - print ''; - print ''; -?> -
    - -
    -
    -
    -
    -
    -
    -
    - - - -
    - - -
    - -
    -
    -
    -
    -'; -?> -
    -'.get_int_text('button_saveplaylist').'
    '; - print '
    -
    - -
    '; - print ' -
    '; -?> -
    -
    -
    '; - print '
    '; -?> -
    - -
    -
    - -
    -
    -
    Play Queue
    - -
    -
    - -
    -
    -
    -
    '; - include('player/mpd/outputs.php'); - if (count($outputdata) == 1) { - // There's only one output so we'll treat it like a Mute button - print '
    '; - $f = ($outputdata[0]['outputname'] == "Mute") ? 0 : 1; - $c = ($outputdata[0]['outputenabled'] == $f) ? 'icon-output' : 'icon-output-mute'; - print ''; - print '
    '; - } else { - print '
    '; - print ''; - print '
    '; - } - -?> -
    -
    - - 1) { - print ''; - } - -?> - -
    -
    -
    -
    -
    - - - - -
    - -
    -'; -print ''; -print ''; -print ''; -print ''; -print ''; -print ''; -print ''; -?> -
    -
    - -
    -'; - ?> - -
    -'; -?> -
    -
    -
    - -'; -?> -
    -
    -
    - - -'; -print ''; -?> -
    - -
    - -
    - -
    - - '; - collectionButtons(); -?> -
    -
    - - - -
    -
    - - -
    -
    - - - - - - '; -include("includes/podcasts.php"); -?> - - -
    - - -
    - - - '; - -if ($prefs['player_backend'] == "mopidy") { - print '
    Music From Your Collection
    '; -} -?> -
    - - -Music From Spotify'; -} -?> -
    - -Music From Everywhere'; - print '
    Play From These Sources:
    '; -} -?> -
    - -
    -
    - - - -
    - -

    '. - get_int_text('label_emptyinfo').'

    '; -?> -
    -
    - - - - -
    -
    -
    '.get_int_text("lastfm_addtagslabel"); -?> -
    - -
    diff --git a/www/rompr/skins/fruit/skin.requires b/www/rompr/skins/fruit/skin.requires deleted file mode 100755 index 83ad392..0000000 --- a/www/rompr/skins/fruit/skin.requires +++ /dev/null @@ -1,5 +0,0 @@ -jquery/jquery.hotkeys.js -jquery/jquery.mCustomScrollbar.concat.min-3.1.5.js -ui/hotkeys.js -css/jquery.mCustomScrollbar.css -css/tipTip.css diff --git a/www/rompr/skins/fruit/skinvars.php b/www/rompr/skins/fruit/skinvars.php deleted file mode 100755 index 71dce08..0000000 --- a/www/rompr/skins/fruit/skinvars.php +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/www/rompr/skins/fruit/ui_elements.php b/www/rompr/skins/fruit/ui_elements.php deleted file mode 100644 index 01420cd..0000000 --- a/www/rompr/skins/fruit/ui_elements.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/www/rompr/skins/phone/skin.css b/www/rompr/skins/phone/skin.css deleted file mode 100644 index 05fd5e2..0000000 --- a/www/rompr/skins/phone/skin.css +++ /dev/null @@ -1,1160 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -h1 { - font-size:130%; -} - -h2 { - font-size:120%; -} - -select { - width:100%; - height:3em; -} - -.selectholder { - height:3em; -} - -input[type="text"] { - height:3em; -} - -div { - box-sizing: border-box; -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#pscroller { - overflow-y:scroll; - -webkit-overflow-scrolling: touch; -} - -#headerbar { - height:40px; - padding:0px; - margin:0px; - border:none; -} - -#loadsawrappers { - /* Tried to use this, but safari on my iPhone S sets 100vh as 320px when the browser reports - it as 300px, even in full-screen mode. This is definitely a bug, but what can ya do? */ - /* Note this includes 40px for headerbar. Keep them synced */ - /* height: calc(100vh - 40px); */ - width: 100%; - overflow:hidden; -} - -#albumpicture { - object-fit:contain; -} - -#historypanel, #tagadder { - overflow-y: auto !important; -} - -#volume { - width:95%; -} - -#volumecontrol { - height:2em; -} - -#infobar { - overflow-x:hidden; - overflow-y:hidden; -} - -#playbackTime { - font-weight:bold; - font-size:8px; - padding-top:1px; - height:11px; - line-height:11px; - text-align:center; - width:100%; -} - -#buttons { - padding-left:0px !important; - padding-right:0px !important; - padding-top:2px !important; - padding-bottom:0px !important; - text-align:center; -} - -#amontobin { - overflow:hidden; -} - -#nowplaying { - /* white-space:nowrap; */ - margin:auto; - padding:4px; -} - -#nptext { - text-align:center; -} - -#lastfm, #addtoplaylist, #ptagadd, #subscribe { - float:right; - margin-left:6px; - margin-right:6px; - line-height:34px; - height:34px; -} - -.playspan { - margin-right: 1em; -} - -#dbtags { - clear: both; - margin-top:4px; - padding-top:0px; - overflow:hidden; - opacity:0.9; - font-size:8pt; - line-height:12pt; -} - -#scrobwrangler { - font-size:8pt; - width:90%; -} - -#stars { - margin-top:0px; - margin-right:2px; - padding-top:0px; - margin-left:6px; -} - -#controls { - padding-top:1px; -} - -#notifications { - position:absolute; - width:100%; - padding:4px; - bottom:0px; - left:0px; - display:none; - font-size:8pt; - font-weight:bold; - z-index:10010; -} - -#chooserbuttons -{ - padding-top:4px; -} - -#sourcescontrols -{ - width:100%; -} - -#tagadder -{ - z-index: 15000; -} - -#audiobooks .podcastresume>.fixed -{ - padding-left: 32px; -} - -#audiobooks .podcastresume>.expand -{ - margin-right: 4px; -} - -#audiobooks .podcastresume -{ - border-top: none !important; -} - -#flowcontrols { - height: 36px; -} - -#flowcontrols i { - max-height: 24px; - margin-top:4px; -} - -#toomanywrappers { - height: 100%; - width: 100%; -} - - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -div.topdropmenu { - z-index:10009; - box-sizing:border-box; - width:100%; - position:fixed; - right: 0; -} - -.mainpane { - position: relative; - top: 0; - left: 0; -} - -.chooser { - margin-left:auto; - margin-right:auto; - font-weight:bold; - font-size:130%; - padding-bottom:1em; - text-align:center; - cursor:pointer; -} - -.topdrop -{ - float: none !important; -} - -.pref { - margin-left:8px; - margin-bottom:12px; -} - -.topimg { - margin-right:4px; - margin-left:4px; - margin-bottom:2px; - margin-top:4px; - cursor: pointer; -} - -.topdropmenu .topimg { - width:36px; - height:36px; -} - -#narrowscreenicons { - padding-right: 24px; -} - -.topimg.infoclick { - box-sizing: border-box; - border: 6px solid transparent; -} - -.mobonly { - display:inline-block; -} - -.tagremover { - margin-left:0.5em; -} - -.menuitem { - font-weight:bold; - margin:0px; - padding-left:4px; - padding-right:0px; - padding-top:6px; - padding-bottom:6px; - -webkit-box-align:center; - align-items: center; -} - -.playlistalbum { - font-weight:bold; - margin:0px; - padding-left:4px; - padding-right:0px; - padding-top:6px; - padding-bottom:6px; - -webkit-box-align:stretch; - align-items: stretch; -} - -.menu { - cursor:pointer; -} - -.dropmenu { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - overflow-y: scroll; - z-index: 10000; - padding-bottom:0px; -} - -.popupcontents { - margin: 0px; -} - -.popupcontents>div { - padding: 8px; -} - -.dropmenu .menuitem { - margin-top: 4px; -} - -.menuspacer { - width:1.5em; - height:1.5em; -} - -.mh { - display:block; - padding:8px; - margin-top:2px; - margin-bottom:2px; - margin-right:1em; -} - -.ninesix { - font-size:96%; - padding-top:4px; - padding-bottom:4px; -} - -div.normalmenu { - width:52px; -} - -div.rightmenu { - top:38px; - right:0px; -} - -.infobarlayout { - height:70px; -} - -.playlistrow2 { - font-size:80%; -} - -.clrbth { - clear:both; - display:table; - margin-top:8px; -} - -.scroller { - -webkit-overflow-scrolling:touch; - overflow-y:scroll; - overflow-x:hidden; -} - -.progressbar_v { - height:100%; - width:2em; - margin-right:auto; - margin-left:auto; -} - -.infobox { - float:none; - clear:both; - margin-left:auto !important; - margin-right:auto !important; - width:90% !important; -} - -.infobox_v3 { - float:none; - clear:both; - margin-left:auto !important; - margin-right:auto !important; - width:90% !important; -} - -.thumb { - float:none !important; - margin-left: 0px !important; - margin-right: 0px !important; -} - -.content img { - max-width: 100% !important; - height: auto !important; -} - -.thumbinner -{ - margin-left:auto; - margin-right:auto; -} - -.info-box-fixed { - padding-left: 1em; -} - -.podicon { - margin-top:4px; - margin-bottom:4px; - margin-left:4px; - margin-right:4px; - height:36px; - width:36px; - vertical-align:middle; - box-sizing:border-box; - border:8px solid transparent; -} - -.combo-button { - box-sizing: border-box; - border: 4px solid transparent; -} - -.backhi { - padding-left:2px; - padding-right:2px; - padding-top:6px; - padding-bottom:6px; -} - -#fruitbat .indent.dropmenu.padright { - padding-left: 0px; - padding-right: 0px; -} - -#fruitbat .indent.dropmenu.padright>div { - padding-left: 8px; - width:100%; - padding-right:8px; -} - -.playlisticon -{ - padding:0px; - margin-right:4px; - margin-bottom:2px; - margin-top:2px; - vertical-align:middle; - box-sizing:border-box; - border:6px solid transparent; - height: 26px; - width: 26px; -} - -[class^="icon-"].menu, [class*=" icon-"].menu { - width: 24px; - height: 24px; - box-sizing: border-box; - border: 6px solid transparent; - vertical-align:middle; -} - -.collectionicon { - padding:0px; - margin-right:4px; - margin-bottom:2px; - margin-top:2px; - vertical-align:middle; - width:20px; - height:20px -} - -.playlisticonr { - padding:0px; - margin-left:4px; - margin-bottom:2px; - margin-top:2px; - margin-right:2px; - vertical-align:middle; - box-sizing:border-box; - border:8px solid transparent; - width:32px; - height:32px; -} - -#sortable { - position: relative; - top: 0; - left: 0; -} - -#sortable .trackgroup { - position: relative; - top: 0; - left: 0; -} - -#sortable .item { - position: relative; - top: 0; - left: 0; -} - -#sortable .trackgroup .track { - position: relative; - top: 0; - left: 0; -} - -#sortable .playlisticonr.icon-cancel-circled { - /* display: none; */ -} - -.prearranger { - display:none; -} - -#sortable .playlisticonr { - margin-right:4px; - width: 40px; -} - -#collection .playlisticonr { - margin-right:4px; - width: 48px; -} - -#sortable .track>div>div.clickable { - margin-right: 8px; -} - -.npicon { - padding-top:0px; - padding-left:0px; - padding-right:0px; - padding-bottom:4px; - margin-top:0px; - margin-left:0px; - margin-bottom:0px; - margin-right:0px; - height:26px; - width:26px; - vertical-align:middle; -} - -.rating-icon-big { - height: 34px; - width: 140px; - line-height:1em; - padding-bottom:4px; - cursor: pointer; - vertical-align:middle; -} - -.rating-icon-small { - height: 14px; - width: 70px; - cursor: pointer; - vertical-align:middle; - -} - -.sptext { - white-space:nowrap; - padding-right:4px; - text-align:right; - margin-right:24px; -} - -#ratingimage { - padding-bottom:0px; -} - -.trackgroup { - white-space:normal; -} - -.dropdown-button { - margin-left:-20px !important; -} - -.padright { - padding-right:4px; -} - -.whatdoicallthis { - margin-bottom: 8px; -} - -.podhackshit { - margin-bottom:2em; -} - -@media screen and (orientation: landscape) { - .cshrinker { - max-height: calc(100vh - 40px); - width: auto; - } -} - -@media screen and (orientation: portrait) { - .cshrinker { - max-width:100%; - height: auto; - } -} - -.pleft -{ - padding-left:8px; -} - -.pright -{ - box-sizing:border-box; - padding-right:8px; -} - -.mobmenu -{ - position:absolute; - top:4px; - left:4px; - width:95%; - max-height:95%; - box-sizing:border-box; - padding:8px; - overflow-y:scroll !important; -} - -.setupdiv -{ - width:100%; - box-sizing:border-box; -} - -.backmenu -{ - box-sizing: border-box; - height: 2.5em; - border-left: 4px solid transparent; - padding-left: 38px; - padding-right: 8px; - width: 100%; - text-align:right; -} - -@-webkit-keyframes clickflash { - 0%{ - background-color: rgba(255,255,255,0.7); - } - 50%{ - background-color: rgba(255,255,255,0.3); - } - 100%{ - background-color: rgba(255,255,255,0); - } -} -@-moz-keyframes clickflash { - 0%{ - background-color: rgba(255,255,255,0.7); - } - 50%{ - background-color: rgba(255,255,255,0.3); - } - 100%{ - background-color: rgba(255,255,255,0); - } -} -@keyframes clickflash { - 0%{ - background-color: rgba(255,255,255,0.7); - } - 50%{ - background-color: rgba(255,255,255,0.3); - } - 100%{ - background-color: rgba(255,255,255,0); - } -} - -.clickflash { - animation: clickflash 0.75s linear 1; -} - -.album-menu-header { - width:100%; - text-align:center; -} - -.album-play-controls { - margin-bottom:4px; - padding-bottom:4px; -} - -.album_menu_image { - max-width: 100%; - height: auto; - max-height: 60vh; -} - -.calign { - align-items: center; -} - -.indent { - padding-left: 4px; - box-szing:border-box; -} - -img.jalopy200 { - max-width:140px; -} - -.headercontainer { - height:90%; - box-sizing: border-box; -} - -.buttonbar { - height: 42px; -} - -.onlyverywide { - padding-left:8px; - padding-right:8px; - box-sizing:border-box; -} - -.info-box-expand { - -webkit-box-flex:1.0; - flex-grow: 1; - flex-shrink: 1; - flex-basis: auto; -} - -/* -===================================================================== -= Responsive Layout - General -===================================================================== -*/ - -@media screen and (max-width: 420px) { - .notnarrow.snapclienthost { - display: none; - } -} - -@media screen and (max-width: 640px) { - .info-detail-layout { - -webkit-box-orient:vertical; - flex-direction: column; - } - .info-box-expand.stumpy { - padding-left:0px; - } - .info-box-fixed.info-border-right { - padding-left:0px; - } - .info-box-expand.info-border-right { - margin-bottom:1em; - padding-bottom:0.5em; - } -} - -@media screen and (min-width: 641px) { - .cleft.narrowright { - margin-left:1em; - } -} - -@media screen and (max-width: 540px) { - .onlywide { - display:none !important; - } -} - -@media screen and (min-width: 541px) { - .onlynarrow { - display:none !important; - } -} - -@media screen and (max-width: 799px) { - .onlyverywide { - display: none; - } -} - -@media screen and (max-width: 540px) { - .stleft - { - float:none; - width:auto; - max-width:95%; - clear:both; - border-right:none !important; - border-bottom: 1px solid #dddddd !important; - } -} - -/* -===================================================================== -= Responsive Layout - Portrait, playlist on separate panel -===================================================================== -*/ - -@media screen and (max-height: 699px) and (orientation: portrait) { - - #playlistm { - width:100%; - height:100%; - } - - .mainpane { - width: 100%; - height: 100%; - } - - #albumcover { - text-align: center; - overflow:hidden; - } - - #albumpicture { - width: 85%; - max-width: 60vh; - } - - #dbtags { - float: left; - margin-left:6px; - margin-right:6px; - } - - #stars { - float:left; - } - -} - -/* == Tweaks for specific sizes */ - -@media screen and (max-height: 480px) and (orientation: portrait) { - /* iPhone 4 screen height */ - #albumpicture { - max-width:50vh; - } -} - -@media screen and (max-width: 360px) and (max-height: 699px) and (orientation: portrait) { - #albumpicture { - width:98%; - } -} - -@media screen and (min-height: 640px) and (max-height: 699px) and (orientation: portrait) { - #albumpicture { - width: 98%; - } -} - -/* -===================================================================== -= Responsive Layout - Portrait, playlist on now playing screen -= Changes at 700px high -===================================================================== -*/ - -@media screen and (min-height: 700px) and (orientation: portrait) { - - .mainpane { - width: 100%; - height: 100%; - } - - #infobar { - height: 50%; - width: 100%; - } - - #toomanywrappers { - overflow: hidden; - } - - #playlistm { - height:50%; - width:100%; - } - - .choose_playlist { -/* This is here so the layoutProcessor knows we're in tall portrait mode - and it should choose infobar instead */ - font-weight:900; - } - -} - -@media screen and (min-height: 700px) and (max-width: 420px) and (orientation: portrait) { - /* Narrow screens - nowplaying under album picture */ - #albumcover { - text-align: center; - overflow:hidden; - } - - #albumpicture { - width: 85%; - max-width: 22vh; - height: auto; - } - - #dbtags { - float: left; - margin-left:6px; - margin-right:6px; - } - - #stars { - float:left; - } -} - -@media screen and (min-height: 700px) and (min-width: 421px) and (orientation: portrait) { - /* Wider screens - nowplaying next to album picture */ - #albumcover { - float: left; - height:100%; - } - - #albumpicture { - height: 100%; - width: auto; - margin-right:8px; - } - - #nowplaying { - padding-right: 8px; - } - - #nptext { - text-align:right; - } - - #amontobin { - text-align: right; - } - - #lastfm, #addtoplaylist, #ptagadd, #subscribe { - margin-bottom: 4px; - } - -} - -/* -===================================================================== -= Responsive Layout - Landscape, playlist on separate panel -= Essentially the same as portrait with min-height 700 and min-width 421 -===================================================================== -*/ - -@media screen and (max-width:639px) and (orientation: landscape) { - - .mainpane { - width: 100%; - height: 100%; - } - - #albumpicture { - height: 100%; - width: auto; - margin-right:8px; - } - - #playlistm { - width: 100%; - height: 100%; - } - - #albumcover { - float: left; - height:100%; - } - - #nowplaying { - padding-right: 8px; - } - - #amontobin { - text-align: right; - } - - #lastfm, #addtoplaylist, #ptagadd, #subscribe, #stars { - margin-bottom: 8px; - } - - #stars { - float: right; - } -} - -/* -===================================================================== -= Responsive Layout - Landscape, chooser next to nowplaying -= Switches at 640px wide -===================================================================== -*/ - -@media screen and (min-width:640px) and (orientation: landscape) { - .mainpane { - width: 50%; - float:left; - height: 100%; - } - - #playlistm { - width: 50%; - float:left; - height: 100%; - } - - #infobar { - display:block; - } - - #infopane { - width:100%; - } -} - -/* 3 Modes for info pane to make best use of available space */ - -@media screen and (min-width:640px) and (orientation: landscape) { - /* Standard - info pane looks like small portrait mode */ - #albumcover { - text-align: center; - overflow:hidden; - } - - #albumpicture { - width: 85%; - max-width: 40vh; - } - - #dbtags { - float: left; - margin-left:6px; - margin-right:6px; - } - - #stars { - float:left; - } -} - -@media screen and (min-width:810px) and (max-height: 540px) and (orientation: landscape) { - /* Wider - info pane looks like wide portrait mode up to 540px high*/ - /* ie nowplaying is next to album image - can't have album image very big - with a screen of this height so there's loads of wasted space to the sides */ - #albumcover { - float: left; - height:100%; - } - - #albumpicture { - height: 100%; - width: auto; - margin-right:8px; - max-width:60vh; - } - - #nowplaying { - padding-right: 8px; - } - - #nptext { - text-align:right; - } - - #amontobin { - text-align: right; - } - - #lastfm, #addtoplaylist, #ptagadd, #subscribe { - margin-bottom: 4px; - } - - #stars, #dbtags { - float: none; - } - -} - -@media screen and (min-width:640px) and (min-height: 541px) and (orientation: landscape) { - /* at 540 px high it reverts to being like small portrait mode */ - #albumpicture { - max-width:60vh - } -} - -@media screen and (min-width:1024px) and (min-height: 768px) and (orientation: landscape) { - /* Big screens - combination of everything - nowplaying and playlist together, chooser on right hand side */ - #infobar { - height: 50%; - } - - #albumcover { - float: left; - height:100%; - } - - #albumpicture { - height: 100%; - width: auto; - margin-right:8px; - } - - #nowplaying { - padding-right: 8px; - } - - #nptext { - text-align:right; - } - - #amontobin { - text-align: right; - } - - #lastfm, #addtoplaylist, #ptagadd, #subscribe { - margin-bottom: 4px; - } - - #stars, #dbtags { - float: none; - } - - .choose_playlist { -/* This is here so the layoutProcessor knows we're in tall portrait mode - and it should choose infobar instead */ - font-weight:1000; - } - - #playlistm { - position: absolute; - height: calc(50% - 20px); - top: calc(50% + 20px); - } - -} diff --git a/www/rompr/skins/phone/skin.js b/www/rompr/skins/phone/skin.js deleted file mode 100644 index d10a3e1..0000000 --- a/www/rompr/skins/phone/skin.js +++ /dev/null @@ -1,772 +0,0 @@ -jQuery.fn.menuReveal = function(callback) { - debug.log("UI", "Revealing",$(this).attr('id')); - var self = this; - if (this.hasClass('toggledown')) { - if (callback) { - this.slideToggle('fast',callback); - } else { - this.slideToggle('fast'); - } - } else { - this.findParentScroller().saveScrollPos(); - this.show(0, function() { - var i = self.find('.album_menu_image'); - if (i.length > 0) { - i.attr('src', i.attr('asrc')); - } - if (callback) { - callback(); - } - }); - } - return this; -} - -jQuery.fn.menuHide = function(callback) { - debug.log("UI", "Hiding",$(this).attr('id')); - var self = this; - if (this.hasClass('toggledown')) { - if (callback) { - this.slideToggle('fast',callback); - } else { - this.slideToggle('fast'); - } - } else { - this.hide(0, function() { - if (callback) { - callback(); - } - self.findParentScroller().restoreScrollPos(); - if (self.hasClass('removeable')) { - self.remove(); - } else { - debug.log("UI", "Hiding Image",$(this).attr('id')); - var i = self.find('.album_menu_image'); - i.removeAttr('src'); - } - }); - } - return this; -} - -jQuery.fn.isOpen = function() { - if (this.hasClass('backmenu') || $('#'+this.attr('name')).is(':visible')) { - return true; - } else { - return false; - } -} - -jQuery.fn.isClosed = function() { - if (this.hasClass('backmenu') || $('#'+this.attr('name')).is(':visible')) { - return false; - } else { - return true; - } -} - -jQuery.fn.makeSpinner = function() { - if (this.hasClass('icon-toggle-closed') || - this.hasClass('icon-toggle-open') || - this.hasClass('podicon')) { - return this.each(function() { - var originalclasses = new Array(); - var classes = ''; - if ($(this).attr("class")) { - var classes = $(this).attr("class").split(/\s/); - } - for (var i = 0, len = classes.length; i < len; i++) { - if (classes[i] == "invisible" || (/^icon/.test(classes[i]))) { - originalclasses.push(classes[i]); - $(this).removeClass(classes[i]); - } - } - $(this).attr("originalclass", originalclasses.join(" ")); - $(this).addClass('icon-spin6 spinner'); - }); - } else { - this.addClass('clickflash'); - return this; - } -} - -jQuery.fn.stopSpinner = function() { - if (this.hasClass('spinner')) { - this.each(function() { - $(this).removeClass('icon-spin6 spinner'); - if ($(this).attr("originalclass")) { - $(this).addClass($(this).attr("originalclass")); - $(this).removeAttr("originalclass"); - } - }); - } else { - this.removeClass('clickflash'); - } - return this; -} - -jQuery.fn.findParentScroller = function() { - var parentScroller = this.parent(); - while (!parentScroller.hasClass('scroller') && !parentScroller.hasClass('dropmenu') && !parentScroller.hasClass('phone')) { - parentScroller = parentScroller.parent(); - } - return parentScroller; -} - -jQuery.fn.saveScrollPos = function() { - this.prepend(''); - this.scrollTo(0); - this.css('overflow-y', 'hidden'); -} - -jQuery.fn.restoreScrollPos = function() { - var a = this.find('input[name="restorescrollpos"]'); - this.css('overflow-y', 'scroll'); - this.scrollTop(a.val()); - a.remove(); -} - -jQuery.fn.makeTagMenu = function(options) { - var settings = $.extend({ - textboxname: "", - textboxextraclass: "", - labelhtml: "", - populatefunction: null, - buttontext: null, - buttonfunc: null, - buttonclass: "" - },options); - - this.each(function() { - var tbc = "enter"; - if (settings.textboxextraclass) { - tbc = tbc + " "+settings.textboxextraclass; - } - if ($(this).is('td')) { - $(this).prev().html(settings.labelhtml); - var wrapper = $('
    ', {class: 'containerbox dropdown-container'}).appendTo($(this)); - var holder = $('
    ', { class: "expand"}).appendTo(wrapper); - var dropbutton = $('', { class: 'fixed combo-button'}).appendTo(wrapper); - var textbox = $('', { type: "text", class: tbc, name: settings.textboxname }).appendTo(holder); - var dropbox = $('
    ', {class: "drop-box tagmenu dropshadow"}).appendTo($(this)); - } else { - $(this).append(settings.labelhtml); - var holder = $('
    ', { class: "expand"}).appendTo($(this)); - var dropbutton = $('', { class: 'fixed combo-button'}).appendTo($(this)); - var textbox = $('', { type: "text", class: tbc, name: settings.textboxname }).appendTo(holder); - var dropbox = $('
    ', {class: "drop-box tagmenu dropshadow"}).insertAfter($(this)); - } - var menucontents = $('
    ', {class: "tagmenu-contents"}).appendTo(dropbox); - if (settings.buttontext !== null) { - var submitbutton = $('
    -
    - -
    - - - -'; - collectionButtons(); -?> -
    -
    -
    - - -
    -
    - - -
    -
    - -'; -?> -
    -
    -
    - - - -
    - -'; -include("includes/podcasts.php"); -?> - - - -
    - - - -'; -?> -Music From Your Collection'; -} -?> -
    - -Music From Spotify'; -} -?> -
    - -Music From Everywhere'; - print '
    Play From These Sources:
    '; -} -?> -
    -
    - - - -'; -?> - - '; -?> - -
    -
    -
    -
    -
    - - - -
    - -
    - - - -
    -
    -
    '.get_int_text("lastfm_addtagslabel"); -?> -
    - -
    - -
    - '.get_int_text('button_addtoplaylist').'
    '; - ?> -
    -
    - - diff --git a/www/rompr/skins/phone/skin.requires b/www/rompr/skins/phone/skin.requires deleted file mode 100644 index 7b2a23a..0000000 --- a/www/rompr/skins/phone/skin.requires +++ /dev/null @@ -1 +0,0 @@ -jquery/jquery.scrollTo.min.js diff --git a/www/rompr/skins/phone/skinvars.php b/www/rompr/skins/phone/skinvars.php deleted file mode 100644 index 0d2243f..0000000 --- a/www/rompr/skins/phone/skinvars.php +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/www/rompr/skins/phone/ui_elements.php b/www/rompr/skins/phone/ui_elements.php deleted file mode 100644 index be22e51..0000000 --- a/www/rompr/skins/phone/ui_elements.php +++ /dev/null @@ -1,233 +0,0 @@ -'; - } else if ($data['uri'] == null) { - print '
    '; - } else { - print '
    '; - } - - // Track Number - if ($data['trackno'] && $data['trackno'] != "" && $data['trackno'] > 0) { - print '
    99 || $data['trackno'] > 99) { - print ' style="width:3em"'; - } - print '>'.$data['trackno'].'
    '; - } - - print domainIcon($d, 'collectionicon'); - - // Track Title, Artist, and Rating - if ((string) $data['title'] == "") $data['title'] = urldecode($data['uri']); - print '
    '; - print '
    '.$data['title'].'
    '; - if ($data['artist'] && $data['trackartistindex'] != $data['albumartistindex']) { - print '
    '.$data['artist'].'
    '; - } - if ($data['rating']) { - print '
    '; - print ''; - print '
    '; - } - if ($data['tags']) { - print '
    '; - print ''.$data['tags']; - print '
    '; - } - print '
    '; - - // Track Duration - print '
    '; - if ($data['time'] > 0) { - print format_time($data['time']); - } - print '
    '; - - // Delete Button - if ($data['lm'] === null) { - print ''; - } - - print '
    '; - - if ($data['progress'] > 0) { - print ''; - print ''; - } - - return 0; -} - -function artistHeader($id, $name) { - global $divtype; - $h = ''; - return $h; -} - -function noAlbumsHeader() { - print '
    '. - get_int_text("label_noalbums").'
    '; -} - -function albumHeader($obj) { - global $prefs; - $h = ''; - if ($obj['id'] == 'nodrop') { - // Hacky at the moment, we only use nodrop for streams but here there is no checking - // because I'm lazy. - $h .= ''; - return $h; -} - -function albumControlHeader($fragment, $why, $what, $who, $artist) { - if ($fragment || $who == 'root') { - return ''; - } - $html = ''; - $html .= '
    '.$artist.'
    '; - $html .= '
    '.get_int_text('label_play_all').'
    '; - return $html; -} - -function trackControlHeader($why, $what, $who, $dets) { - $html = ''; - foreach ($dets as $det) { - $albumimage = new baseAlbumImage(array('baseimage' => $det['Image'])); - $images = $albumimage->get_images(); - $html .= '
    '; - if ($why != '') { - $html .= '
    '.get_int_text('label_play_options').'
    '; - $html .= '
    '; - if ($det['AlbumUri']) { - $albumuri = rawurlencode($det['AlbumUri']); - if (strtolower(pathinfo($albumuri, PATHINFO_EXTENSION)) == "cue") { - $html .= '
    '; - } else { - $html .= '
    '; - $html .= '
    '; - } - } else { - $html .= '
    '; - } - $html .= '
    '; - $html .= '
    '; - $html .= '
    '; - $html .= '
    '; - $html .= '
    '; - $html .= '
    '.ucfirst(get_int_text('label_tracks')).'
    '; - } - } - print $html; -} - -function printDirectoryItem($fullpath, $displayname, $prefix, $dircount, $printcontainer = false) { - $c = ($printcontainer) ? "searchdir" : "directory"; - print ''; - print ''; - if ($printcontainer) { - print '
    '; - } -} - -function directoryControlHeader($prefix, $name = null) { - print ''; - if ($name !== null) { - print '
    '.$name.'
    '; - } -} - -function printRadioDirectory($att) { - $name = md5($att['URL']); - print ''; - print ''; - print ''; - print '
    '; -} - -function playlistPlayHeader($name, $text) { - logger::log("UI", "Getting image for playlist",$name); - $albumimage = new albumImage(array('artist' => "PLAYLIST", 'album' => $text)); - $image = $albumimage->get_image_if_exists(); - if ($image) { - $images = $albumimage->get_images(); - print '
    '; - } - print '
    '.get_int_text('label_play_all'); - print ''; - print '
    '; -} - -function addPodcastCounts($html, $extra) { - $out = phpQuery::newDocument($html); - $out->find('.menuitem')->append($extra); - return $out; -} - -function addUserRadioButtons($html, $index, $uri, $name, $image) { - $out = phpQuery::newDocument($html); - $extra = '
    '; - $out->find('.menuitem')->append($extra); - return $out; -} - -function addPlaylistControls($html, $delete, $is_user, $name) { - global $prefs; - $out = phpQuery::newDocument($html); - if ($delete && ($is_user || $prefs['player_backend'] == "mpd")) { - $add = ($is_user) ? "user" : ""; - $h = ''; - $h .= ''; - $h .= ''; - $h .= ''; - $out->find('.menuitem')->append($h); - } - return $out; -} - -?> diff --git a/www/rompr/skins/playlist.php b/www/rompr/skins/playlist.php deleted file mode 100644 index 8e27fd2..0000000 --- a/www/rompr/skins/playlist.php +++ /dev/null @@ -1,93 +0,0 @@ -
    - - - - - - -
    -'; -?> - -'; -?> -
    -
    -'; - -if ($prefs['player_backend'] == "mpd") { -?> - - - - - - - - - - - - - - -
    -
    REPLAY GAIN
    -
    -
    -
    Off
    -
    -
    -
    -
    Track
    -
    -
    -
    -
    Album
    -
    -
    -
    -
    Auto
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    diff --git a/www/rompr/skins/search.php b/www/rompr/skins/search.php deleted file mode 100644 index c2f0900..0000000 --- a/www/rompr/skins/search.php +++ /dev/null @@ -1,47 +0,0 @@ - -'; -foreach ($sterms as $label => $term) { - print ''; - print ''.ucwords(strtolower(get_int_text($label))).''; - print ''; - print ''; -} - -print ''; -print ''.get_int_text("label_rating").''; -print '
    -'; -print '
    '; -print ''; - -print ''; -print ''; -print ''; -print ''; - -print ''; - -print ''; - -print '
    - -
    - -
    - '; -include("includes/podcasts.php"); -?> -
    - -
    - - '; - -if ($prefs['player_backend'] == "mopidy") { - print '
    Music From Your Collection
    '; -} -?> -
    - - -Music From Spotify'; -} -?> -
    - -Music From Everywhere'; - print '
    Play From These Sources:
    '; -} -?> -
    - -
    -
    - - - '; -?> -
    -
    - - - - - - -
    -
    -
    '.get_int_text("lastfm_addtagslabel"); -?> -
    - -
    diff --git a/www/rompr/skins/skypotato/skin.requires b/www/rompr/skins/skypotato/skin.requires deleted file mode 100755 index 83ad392..0000000 --- a/www/rompr/skins/skypotato/skin.requires +++ /dev/null @@ -1,5 +0,0 @@ -jquery/jquery.hotkeys.js -jquery/jquery.mCustomScrollbar.concat.min-3.1.5.js -ui/hotkeys.js -css/jquery.mCustomScrollbar.css -css/tipTip.css diff --git a/www/rompr/skins/skypotato/skinvars.php b/www/rompr/skins/skypotato/skinvars.php deleted file mode 100755 index 71dce08..0000000 --- a/www/rompr/skins/skypotato/skinvars.php +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/www/rompr/skins/skypotato/ui_elements.php b/www/rompr/skins/skypotato/ui_elements.php deleted file mode 100644 index dc5a37e..0000000 --- a/www/rompr/skins/skypotato/ui_elements.php +++ /dev/null @@ -1,239 +0,0 @@ -'; - } else if ($data['uri'] == null) { - print '
    '; - } else { - print '
    '; - } - - // Track Number - if ($data['trackno'] && $data['trackno'] != "" && $data['trackno'] > 0) { - print '
    99 || $data['trackno'] > 99) { - print ' style="width:3em"'; - } - print '>'.$data['trackno'].'
    '; - } - - print domainIcon($d, 'collecionicon'); - - // Track Title, Artist, and Rating - if ((string) $data['title'] == "") $data['title'] = urldecode($data['uri']); - print '
    '; - print '
    '.$data['title'].'
    '; - if ($data['artist'] && $data['trackartistindex'] != $data['albumartistindex']) { - print '
    '.$data['artist'].'
    '; - } - if ($data['rating']) { - print '
    '; - print ''; - print '
    '; - } - if ($data['tags']) { - print '
    '; - print ''.$data['tags']; - print '
    '; - } - print '
    '; - - // Track Duration - print '
    '; - if ($data['time'] > 0) { - print format_time($data['time']); - } - print '
    '; - - // Delete Button - if ($data['lm'] === null) { - print ''; - } - - print '
    '; - - if ($data['progress'] > 0) { - print ''; - print ''; - } - - return 0; -} - -function artistHeader($id, $name) { - global $divtype; - $h = ''; - return $h; -} - -function noAlbumsHeader() { - print '
    '.get_int_text("label_noalbums").'
    '; -} - -function albumHeader($obj) { - global $prefs; - $h = '
    '; - if ($obj['id'] == 'nodrop') { - // Hacky at the moment, we only use nodrop for streams but here there is no checking - // because I'm lazy. - $h .= '
    '; - } else { - if (array_key_exists('plpath', $obj)) { - $h .= ''; - } - $h .= ''; - $h .= '
    '; - - return $h; -} - -function albumControlHeader($fragment, $why, $what, $who, $artist) { - if ($fragment || $who == 'root') { - return ''; - } - $html = '
    '.$artist.'
    '; - $html .= '
    '.get_int_text('label_play_all').'
    '; - return $html; -} - -function trackControlHeader($why, $what, $who, $dets) { - $html = ''; - foreach ($dets as $det) { - if ($why != '') { - $html .= '
    '; - if ($det['AlbumUri']) { - $albumuri = rawurlencode($det['AlbumUri']); - if (strtolower(pathinfo($albumuri, PATHINFO_EXTENSION)) == "cue") { - $html .= '
    '; - } else { - $html .= '
    '; - $html .= '
    '; - } - } else { - $html .= '
    '; - } - $html .= '
    '; - $html .= '
    '; - $html .= '
    '; - $html .= '
    '; - $html .= '
    '; - $html .= '
    '.ucfirst(get_int_text('label_tracks')).'
    '; - } - } - print $html; -} - -function printDirectoryItem($fullpath, $displayname, $prefix, $dircount, $printcontainer = false) { - $c = ($printcontainer) ? "searchdir" : "directory"; - print ''; - print ''; - if ($printcontainer) { - print '
    '; - } -} - -function directoryControlHeader($prefix, $name = null) { - if ($name !== null) { - print ''; - } -} - -function printRadioDirectory($att) { - $name = md5($att['URL']); - print ''; - print ''; - print ''; - print ''; -} - -function playlistPlayHeader($name, $text) { - print '
    '.get_int_text('label_play_all'); - print ''; - print '
    '; -} - -function addPodcastCounts($html, $extra) { - $out = phpQuery::newDocument($html); - $out->find('.containerbox.wrap')->removeClass('wrap')->addClass('vertical'); - $extra = '
    '.$extra.'
    '; - $out->find('.containerbox.vertical')->append($extra); - return $out; -} - -function addUserRadioButtons($html, $index, $uri, $name, $image) { - $out = phpQuery::newDocument($html); - $extra = '
    '; - $extra .= '
    '; - $extra .= ''; - $extra .= "
    "; - $out->find('.helpfulalbum')->append($extra); - return $out; -} - -function addPlaylistControls($html, $delete, $is_user, $name) { - global $prefs; - $out = phpQuery::newDocument($html); - if ($delete && ($is_user || $prefs['player_backend'] == "mpd")) { - $add = ($is_user) ? "user" : ""; - $h = '
    '; - $h .= ''; - $h .= ''; - $h .= '
    '; - $h .= ''; - $h .= ''; - $h .= '
    '; - $out->find('.helpfulalbum')->append($h); - } - return $out; -} - -?> diff --git a/www/rompr/skins/standard_ui.php b/www/rompr/skins/standard_ui.php deleted file mode 100644 index f9222a4..0000000 --- a/www/rompr/skins/standard_ui.php +++ /dev/null @@ -1,218 +0,0 @@ -'; - } else if ($data['uri'] == null) { - print '
    '; - } else { - print '
    '; - } - - // Track Number - if ($data['trackno'] && $data['trackno'] != "" && $data['trackno'] > 0) { - print '
    99 || $data['trackno'] > 99) { - print ' style="width:3em"'; - } - print '>'.$data['trackno'].'
    '; - } - - print domainIcon($d, 'collectionicon'); - - // Track Title, Artist, and Rating - if ((string) $data['title'] == "") $data['title'] = urldecode($data['uri']); - print '
    '; - print '
    '.$data['title'].'
    '; - if ($data['artist'] && $data['trackartistindex'] != $data['albumartistindex']) { - print '
    '.$data['artist'].'
    '; - } - if ($data['rating']) { - print '
    '; - print ''; - print '
    '; - } - if ($data['tags']) { - print '
    '; - print ''.$data['tags']; - print '
    '; - } - print '
    '; - - // Track Duration - print '
    '; - if ($data['time'] > 0) { - print format_time($data['time']); - } - print '
    '; - - // Delete Button - if ($data['lm'] === null) { - print ''; - } - - print '
    '; - if ($data['progress'] > 0) { - print ''; - print ''; - } - - return 0; -} - -function artistHeader($id, $name) { - global $divtype; - $h = ''; - return $h; -} - -function noAlbumsHeader() { - print '
    '. - get_int_text("label_noalbums").'
    '; -} - -function albumHeader($obj) { - global $prefs; - $h = ''; - if ($obj['why'] === null) { - $h .= ' -
    -
    -
    -
    -
    -
    - - -
    - -
    - -
    - -
    -
    -
    '.get_int_text("lastfm_addtagslabel"); -?> -
    - -
    - -
    - '.get_int_text('button_addtoplaylist').'
    '; - ?> -
    -
    -
    diff --git a/www/rompr/skins/tablet/skin.requires b/www/rompr/skins/tablet/skin.requires deleted file mode 100644 index caaf2f9..0000000 --- a/www/rompr/skins/tablet/skin.requires +++ /dev/null @@ -1 +0,0 @@ -jquery/jquery.scrollTo.min.js diff --git a/www/rompr/skins/tablet/skinvars.php b/www/rompr/skins/tablet/skinvars.php deleted file mode 100644 index f14ed3c..0000000 --- a/www/rompr/skins/tablet/skinvars.php +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/www/rompr/skins/tablet/ui_elements.php b/www/rompr/skins/tablet/ui_elements.php deleted file mode 100644 index 01420cd..0000000 --- a/www/rompr/skins/tablet/ui_elements.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/www/rompr/snapcast/snapapi.php b/www/rompr/snapcast/snapapi.php deleted file mode 100644 index e5592fc..0000000 --- a/www/rompr/snapcast/snapapi.php +++ /dev/null @@ -1,72 +0,0 @@ -port = $port; - $this->ip = $ip; - } - - public function __destruct() { - $this->close_connection(); - } - - private function open_connection() { - if ($this->is_connected()) { - return true; - } - logger::trace("SNAPCAST", "Connecting to ".$this->ip.':'.$this->port); - $this->connection = @stream_socket_client('tcp://'.$this->ip.':'.$this->port); - if ($this->is_connected()) { - stream_set_timeout($this->connection, 65535); - stream_set_blocking($this->connection, true); - return true; - } - logger::warn("SNAPCAST", "Snapcast connection failed"); - return false; - } - - private function close_connection() { - if ($this->is_connected()) { - stream_socket_shutdown($this->connection, STREAM_SHUT_RDWR); - } - } - - private function is_connected() { - return (isset($this->connection) && is_resource($this->connection)); - } - - public function do_command($json) { - if ($this->open_connection()) { - logger::trace("SNAPCAST", "Sending ",$json); - // For some reason, fputs strips the final } off the string - fputs($this->connection, $json."}\n", strlen($json)+2); - $got = fgets($this->connection); - return $got; - } else { - return $this->errorjson('Could not connect to snapcast server'); - } - $this->close_connection(); - } - - private function errorjson($msg) { - $retval = array('error' => $msg); - return json_encode($retval); - } -} - -$server = new snapcast($prefs['snapcast_server'], $prefs['snapcast_port']); -$json = file_get_contents("php://input"); -$output = $server->do_command($json); -logger::debug("SNAPCAST", "Output is",$output); -header('Content-Type: application/json; charset=utf-8'); -print $output; -?> \ No newline at end of file diff --git a/www/rompr/snapcast/snapcast.js b/www/rompr/snapcast/snapcast.js deleted file mode 100644 index a967472..0000000 --- a/www/rompr/snapcast/snapcast.js +++ /dev/null @@ -1,450 +0,0 @@ -var snapcast = function() { - - var groups = new Array(); - var streams = new Array(); - var updatetimer = null; - var id = 0; - var lastid = 0; - var ew = null; - - function snapcastRequest(parms, callback) { - clearTimeout(updatetimer); - id++; - parms.id = id; - parms.jsonrpc = "2.0"; - $.ajax({ - type: 'POST', - url: 'snapcast/snapapi.php', - data: JSON.stringify(parms) - }) - .done(callback) - .fail(function(jqXHR, textStatus, errorThrown) { - debug.error("SNAPCAST","Command Failed",parms,textStatus,errorThrown); - callback({error: language.gettext('snapcast_notthere')}); - }) - } - - function findGroup(arr, id) { - for (var i in arr) { - if (arr[i].getId() == id) { - return i; - } - } - return false; - } - - return { - updateStatus: function() { - clearTimeout(updatetimer); - if (prefs.snapcast_server != '' && prefs.snapcast_port != '') { - snapcastRequest({ - method: "Server.GetStatus" - }, snapcast.gotStatus); - $('#snapheader').removeClass('invisible'); - } - }, - - gotStatus: function(data) { - debug.trace("SNAPCAST", "Server Status", data); - if (data.hasOwnProperty('error') && lastid != id) { - if (ew === null) { - ew = $('
    ', {class: "fullwidth textcentre", style: "padding:4px"}).insertBefore('#snapcastgroups'); - $('#snapcastgroups').addClass('canbefaded').css({opacity: '0.4'}); - } - ew.html(''+data.error+''); - } else if (data.hasOwnProperty('id') && parseInt(data.id) == id) { - lastid = id; - if (ew !== null) { - ew.remove(); - ew = null; - $('#snapcastgroups').removeClass('canbefaded').css({opacity: ''}); - } - streams = data.result.server.streams; - var newgroups = new Array(); - for (var i in data.result.server.groups) { - var group_exists = findGroup(groups, data.result.server.groups[i].id); - if (group_exists === false) { - debug.log('SNAPCAST','Creating new group',data.result.server.groups[i].id); - var g = new snapcastGroup(); - newgroups.push(g); - g.initialise(); - g.update(i, data.result.server.groups[i]); - } else { - debug.trace('SNAPCAST','Updating group',data.result.server.groups[i].id); - newgroups.push(groups[group_exists]); - groups[group_exists].update(i, data.result.server.groups[i]); - } - } - // Find removed groups - for (var i in groups) { - if (findGroup(newgroups, groups[i].getId()) === false) { - debug.log('SNAPCAST','Group',groups[i].getId(),'has been removed'); - groups[i].removeSelf(); - groups[i] = null; - } - } - groups = newgroups; - } else { - debug.shout('SNAPCAST','Got response with id',data.id,'expecting',id); - } - updatetimer = setTimeout(snapcast.updateStatus, 60000); - }, - - streamInfo: function(streamid) { - for (var i in streams) { - if (streams[i].id == streamid) { - var h = streams[i].status.capitalize()+' '; - h += streams[i].meta.STREAM; - h += ' ('+streams[i].uri.query.codec+' '+streams[i].uri.query.sampleformat+')'; - return h; - } - } - return 'Unknown Stream'; - }, - - getAllStreams: function() { - return streams; - }, - - getAllGroups: function() { - var retval = new Array(); - for (var i in groups) { - retval.push(groups[i].getInfo()); - } - return retval; - }, - - setClientVolume: function(id, volume, muted) { - clearTimeout(updatetimer); - snapcastRequest({ - method: "Client.SetVolume", - params: { - id: id, - volume: { - muted: muted, - percent: volume - } - } - }, snapcast.updateStatus); - }, - - setGroupMute: function(id, muted) { - clearTimeout(updatetimer); - snapcastRequest({ - method: "Group.SetMute", - params: { - id: id, - mute: muted - } - }, snapcast.updateStatus); - }, - - deleteClient: function(id) { - clearTimeout(updatetimer); - snapcastRequest({ - method: "Server.DeleteClient", - params: { - id: id - } - }, snapcast.gotStatus); - }, - - setClientName: function(id, name) { - clearTimeout(updatetimer); - snapcastRequest({ - method: "Client.SetName", - params: { - id: id, - name: name - } - }, snapcast.updateStatus); - }, - - setClientLatency: function(id, latency) { - clearTimeout(updatetimer); - snapcastRequest({ - method: "Client.SetLatency", - params: { - id: id, - latency: parseInt(latency) - } - }, snapcast.updateStatus); - }, - - setStream: function(group, stream) { - clearTimeout(updatetimer); - snapcastRequest({ - method: "Group.SetStream", - params: { - id: group, - stream_id: stream - } - }, snapcast.updateStatus); - }, - - addClientToGroup: function(client, group) { - clearTimeout(updatetimer); - var groupindex = findGroup(groups, group); - var clients = groups[groupindex].getClients(); - clients.push(client); - snapcastRequest({ - method: "Group.SetClients", - params: { - clients: clients, - id: group - } - }, snapcast.gotStatus); - }, - - clearEverything: function() { - clearTimeout(updatetimer); - streams = []; - groups = []; - $('#snapcastgroups').empty(); - } - } - -}(); - -function snapcastGroup() { - - var self = this; - var clients = new Array(); - var holder; - var id = ''; - var muted; - var streammenu; - var ind; - var name; - - function findClient(arr, id) { - for (var i in arr) { - if (arr[i].getId() == id) { - return i; - } - } - return false; - } - - this.initialise = function() { - holder = $('
    ', {class: 'snapcastgroup fullwidth'}).appendTo('#snapcastgroups'); - var title = $('
    ', {class: 'containerbox snapgrouptitle dropdown-container'}).appendTo(holder); - title.append('
    '); - title.append('
    '); - var m = $('', {class: "podicon fixed icon-menu clickicon"}).appendTo(title).on('click', self.setStream); - m = $('', {class: "podicon fixed clickicon", name: "groupmuted"}).appendTo(title).on('click', self.setMute); - streammenu = $('
    ', {class: 'toggledown invisible'}).insertAfter(title); - } - - this.removeSelf = function() { - holder.remove(); - } - - this.getId = function() { - return id; - } - - this.update = function(index, data) { - ind = index; - id = data.id; - muted = data.muted; - name = data.name; - var g = language.gettext('snapcast_group')+index; - if (data.name) { - g += ' ('+data.name+')'; - } - holder.find('div[name="groupname"]').html(g); - holder.find('div[name="groupstream"]').html(snapcast.streamInfo(data.stream_id)); - var icon = data.muted ? 'icon-output-mute' : 'icon-output'; - holder.find('i[name="groupmuted"]').removeClass('icon-output icon-output-mute').addClass(icon); - - var newclients = new Array(); - for (var i in data.clients) { - var client_exists = findClient(clients, data.clients[i].id); - if (client_exists === false) { - debug.log('SNAPCAST','Creating new client',data.clients[i].id); - var g = new snapcastClient(); - newclients.push(g); - g.initialise(holder); - g.update(id, data.clients[i]); - } else { - debug.trace('SNAPCAST','Updating client',data.clients[i].id); - newclients.push(clients[client_exists]); - clients[client_exists].update(id, data.clients[i]); - } - } - // Find removed groups - for (var i in clients) { - if (findClient(newclients, clients[i].getId()) === false) { - debug.log('SNAPCAST','Client',clients[i].getId(),'has been removed'); - clients[i].removeSelf(); - clients[i] = null; - } - } - clients = newclients; - } - - this.setMute = function() { - snapcast.setGroupMute(id, !muted); - } - - this.setStream = function() { - streammenu.empty(); - var s = snapcast.getAllStreams(); - var a = $('
    ', {class: 'menuitem textcentre'}).appendTo(streammenu); - a.html('Change Stream'); - for (var i in s) { - var d = $('
    ', {class: 'backhi clickitem', name: s[i].id}).appendTo(streammenu).on('click', self.changeStream); - d.html(snapcast.streamInfo(s[i].id)); - } - streammenu.slideToggle('fast'); - } - - this.changeStream = function(e) { - var streamid = $(this).attr('name'); - debug.log('SNAPCAST', 'Group',id,'changing stream to',streamid); - snapcast.setStream(id, streamid); - streammenu.slideToggle('fast'); - } - - this.getInfo = function() { - return {index: ind, id: id, name: name}; - } - - this.getClients = function() { - var retval = new Array(); - for (var i in clients) { - retval.push(clients[i].getId()); - } - return retval; - } -} - -function snapcastClient() { - - var self = this; - var holder; - var id = ''; - var volume; - var volumepc; - var muted; - var vc; - var groupmenu; - var grouplist; - var groupid; - var connected; - - this.initialise = function(parentdiv) { - holder = $('
    ', {class: 'snapcastclient'}).appendTo(parentdiv); - var title = $('
    ', {class: 'containerbox dropdown-container'}).appendTo(holder); - var n = $('', {type: "text", class: "expand tag snapclientname", name: "clientname"}).appendTo(title); - var but = $('
    '; -print '
    '; -print '
    '; -print '
    '; -print '
    '; -?> diff --git a/www/rompr/streamplugins/01_somafm.php b/www/rompr/streamplugins/01_somafm.php deleted file mode 100644 index 5128fca..0000000 --- a/www/rompr/streamplugins/01_somafm.php +++ /dev/null @@ -1,177 +0,0 @@ -'; - print albumHeader(array( - 'id' => 'somafmlist', - 'Image' => 'newimages/somafmlogo.svg', - 'Searched' => 1, - 'AlbumUri' => null, - 'Year' => null, - 'Artistname' => '', - 'Albumname' => get_int_text('label_somafm'), - 'why' => null, - 'ImgKey' => 'none', - 'class' => 'radio', - 'expand' => true - )); - print '
    '; - print '
    '.get_int_text('label_loading').'
    '; - print '
    '; - } - - public function doStationList() { - directoryControlHeader('somafmlist', get_int_text('label_somafm')); - print '
    '; - print ''.get_int_text("label_soma_beg").''; - print '
    '; - $d = new url_downloader(array('url' => "http://api.somafm.com/channels.xml")); - if ($d->get_data_to_string()) { - $this->doAllStations($d->get_data()); - } else { - print 'There was an error getting the channels from Soma FM - status code '.$d->get_status(); - } - } - - // -- Private Functions -- // - - private function getimage($c) { - $img = (string) $c->xlimage; - if (!$img) { - $img = (string) $c->largeimage; - } - if (!$img) { - $img = (string) $c->image; - } - return 'getRemoteImage.php?url='.$img; - } - - private function format_listenlink($c, $p, $label) { - $img = $this->getimage($c); - print ''; - } - - private function doAllStations($content) { - logger::trace("SOMAFM", "Loaded Soma FM channels list"); - $x = simplexml_load_string($content); - $count = 0; - foreach ($x->channel as $channel) { - $this->doChannel($count, $channel); - $count++; - } - } - - private function doChannel($count, $channel) { - logger::log("SOMAFM", "Channel :",$channel->title); - if ($channel->highestpls) { - $pls = (string) $channel->highestpls; - } else { - $pls = (string) $channel->fastpls[0]; - } - - print albumHeader(array( - 'id' => 'somafm_'.$count, - 'Image' => $this->getimage($channel), - 'Searched' => 1, - 'AlbumUri' => null, - 'Year' => null, - 'Artistname' => utf8_encode($channel->genre), - 'Albumname' => utf8_encode($channel->title), - 'why' => 'whynot', - 'ImgKey' => 'none', - 'streamuri' => $pls, - 'streamname' => (string) $channel->title, - 'streamimg' => $this->getimage($channel), - 'class' => 'radiochannel' - )); - - print '
    '; - trackControlHeader('','','somafm_'.$count, array(array('Image' => $this->getimage($channel)))); - if ($channel->description) { - print '
    '.utf8_encode($channel->description).'
    '; - } - if ($channel->listeners) { - print '
    '; - print '
    '.$channel->listeners.' '.trim(get_int_text("lastfm_listeners"),':').'
    '; - print '
    '; - } - - print '
    '; - print '
    Listen:
    '; - - if ($channel->highestpls) { - $this->format_listenlink($channel, $channel->highestpls, "High Quality"); - } - foreach ($channel->fastpls as $h) { - $this->format_listenlink($channel, $h, "Standard Quality"); - } - foreach ($channel->slowpls as $h) { - $this->format_listenlink($channel, $h, "Low Quality"); - } - - print '
    '; - - if ($channel->twitter && $channel->dj) { - print ''; - print ''; - } - if ($channel->lastPlaying) { - print ''; - } - - print '
    '; - } -} - -if (array_key_exists('populate', $_REQUEST)) { - - chdir('..'); - - include ("includes/vars.php"); - include ("includes/functions.php"); - include ("international.php"); - include ("skins/".$skin."/ui_elements.php"); - - $soma = new somafmplugin(); - $soma->doStationList(); - -} else { - - $soma = new somafmplugin(); - $soma->doHeader(); - -} - - -?> diff --git a/www/rompr/streamplugins/03_tuneinradio.php b/www/rompr/streamplugins/03_tuneinradio.php deleted file mode 100644 index d7ebebb..0000000 --- a/www/rompr/streamplugins/03_tuneinradio.php +++ /dev/null @@ -1,142 +0,0 @@ -url = 'http://opml.radiotime.com/'; - $this->title = ''; - } - - public function doHeader() { - print '
    '; - print albumHeader(array( - 'id' => 'tuneinlist', - 'Image' => 'newimages/tunein-logo.svg', - 'Searched' => 1, - 'AlbumUri' => null, - 'Year' => null, - 'Artistname' => '', - 'Albumname' => get_int_text('label_tuneinradio'), - 'why' => null, - 'ImgKey' => 'none', - 'class' => 'radio', - 'expand' => true - )); - print '
    '.get_int_text('label_loading').'
    '; - print '
    '; - } - - public function parseParams() { - if (array_key_exists('url', $_REQUEST)) { - $this->url = $_REQUEST['url']; - } else { - directoryControlHeader('tuneinlist', get_int_text('label_tuneinradio')); - print '
    -
    '; - } - if (array_key_exists('title', $_REQUEST)) { - $this->title = $_REQUEST['title']; - directoryControlHeader($_REQUEST['target'], htmlspecialchars($this->title)); - } - if (array_key_exists('search', $_REQUEST)) { - directoryControlHeader('tuneinlist', get_int_text('label_tuneinradio')); - $this->url .= 'Search.ashx?query='.urlencode($_REQUEST['search']); - } - } - - public function getUrl() { - logger::mark("TUNEIN", "Getting URL",$this->url); - $d = new url_downloader(array('url' => $this->url)); - if ($d->get_data_to_string()) { - $x = simplexml_load_string($d->get_data()); - $v = (string) $x['version']; - logger::debug("TUNEIN", "OPML version is ".$v); - $this->parse_tree($x->body, $this->title); - } - } - - private function parse_tree($node, $title) { - - foreach ($node->outline as $o) { - $att = $o->attributes(); - logger::trace("TUNEIN", " Text is",$att['text'],", type is",$att['type']); - switch ($att['type']) { - - case '': - print '
    '; - print '
    '.$att['text'].'
    '; - print '
    '; - $this->parse_tree($o, $title); - break; - - case 'link': - printRadioDirectory($att); - break; - - case 'audio': - switch ($att['item']) { - case 'station': - $sname = $att['text']; - $year = 'Radio Station'; - break; - - case 'topic': - $sname = $title; - $year = 'Podcast Episode'; - break; - - default: - $sname = $title; - $year = ucfirst($att['item']); - break; - - } - - print albumHeader(array( - 'id' => 'nodrop', - 'Image' => 'getRemoteImage.php?url='.$att['image'], - 'Searched' => 1, - 'AlbumUri' => null, - 'Year' => $year, - 'Artistname' => ((string) $att['playing'] != (string) $att['subtext']) ? $att['subtext'] : null, - 'Albumname' => $att['text'], - 'why' => 'whynot', - 'ImgKey' => 'none', - 'streamuri' => $att['URL'], - 'streamname' => $sname, - 'streamimg' => 'getRemoteImage.php?url='.$att['image'], - 'class' => 'radiochannel' - )); - break; - - } - } - - } - -} - -if (array_key_exists('populate', $_REQUEST)) { - - chdir('..'); - - include ("includes/vars.php"); - include ("includes/functions.php"); - include ("international.php"); - include ("skins/".$skin."/ui_elements.php"); - - $tunein = new tuneinplugin(); - $tunein->parseParams(); - $tunein->getUrl(); - -} else { - - $tunein = new tuneinplugin(); - $tunein->doHeader(); -} - -?> diff --git a/www/rompr/streamplugins/04_communityradio.php b/www/rompr/streamplugins/04_communityradio.php deleted file mode 100644 index 5c2a039..0000000 --- a/www/rompr/streamplugins/04_communityradio.php +++ /dev/null @@ -1,345 +0,0 @@ -pagination = 50; - $this->searchterms = array('name', 'country', 'state', 'language', 'tag'); - $this->page = 0; - } - - public function parseParams() { - $this->page = $_REQUEST['page']; - $this->country = array_key_exists('country', $_REQUEST) ? $_REQUEST['country'] : ''; - $this->language = array_key_exists('language', $_REQUEST) ? $_REQUEST['language'] : ''; - $this->tag = array_key_exists('tag', $_REQUEST) ? $_REQUEST['tag'] : ''; - $this->listby = $_REQUEST['listby']; - $this->order = $_REQUEST['order']; - } - - public function doHeader() { - print '
    '; - print albumHeader(array( - 'id' => 'communityradiolist', - 'Image' => 'newimages/broadcast.svg', - 'Searched' => 1, - 'AlbumUri' => null, - 'Year' => null, - 'Artistname' => '', - 'Albumname' => get_int_text('label_communityradio'), - 'why' => null, - 'ImgKey' => 'none', - 'class' => 'radio', - 'expand' => true - )); - print '
    '; - print '
    '.get_int_text('label_loading').'
    '; - print '
    '; - } - - public function doDropdownHeader() { - global $prefs; - directoryControlHeader('communityradiolist', get_int_text('label_communityradio')); - - print '
    List By:
    '; - - $d = new url_downloader(array('url' => 'http://www.radio-browser.info/webservice/json/countries')); - if ($d->get_data_to_string()) { - $countries = json_decode($d->get_data(), true); - $this->makeSelector($countries, 'country', $this->country); - } - - $d = new url_downloader(array('url' => 'http://www.radio-browser.info/webservice/json/languages')); - if ($d->get_data_to_string()) { - $langs = json_decode($d->get_data(), true); - $this->makeSelector($langs, 'language', $this->language); - } - - $d = new url_downloader(array('url' => 'http://www.radio-browser.info/webservice/json/tags')); - if ($d->get_data_to_string()) { - $tags = json_decode($d->get_data(), true); - $this->makeSelector($tags, 'tag', $this->tag); - } - - print '
    Search All Stations:
    '; - print '
    '; - foreach ($this->searchterms as $term) { - print ''; - } - print '
    '; - print '
    '; - print ''; - print '
    '; - print '
    '; - - print '
    Order By:
    '; - print ''; - - print '
    '; - - } - - public function doRequest() { - $url = ''; - switch ($this->listby) { - case 'country': - $url = 'http://www.radio-browser.info/webservice/json/stations/bycountryexact/'.rawurlencode($this->country).'?'; - print '
    Country - '.ucwords($this->country).'
    '; - break; - - case 'language': - $url = 'http://www.radio-browser.info/webservice/json/stations/bylanguageexact/'.rawurlencode($this->language).'?'; - print '
    Language - '.ucwords($this->language).'
    '; - break; - - case 'tag': - $url = 'http://www.radio-browser.info/webservice/json/stations/bytagexact/'.rawurlencode($this->tag).'?'; - print '
    Tag - '.ucwords($this->tag).'
    '; - break; - - case 'search': - $url = 'http://www.radio-browser.info/webservice/json/stations/search?'; - $ourterms = array(); - foreach ($this->searchterms as $t) { - if (array_key_exists($t, $_REQUEST) && $_REQUEST[$t] != '') { - $ourterms[] = $t.'='.rawurlencode($_REQUEST[$t]); - } - } - print '
    '.get_int_text('button_search').' - '.rawurldecode(implode(', ', $ourterms)).'
    '; - $url .= implode('&', $ourterms).'&'; - break; - } - - $url .= 'order='.$this->order; - - switch ($this->order) { - case 'bitrate': - case 'votes': - $url .= '&reverse=true'; - break; - } - - $d = new url_downloader(array('url' => $url)); - if ($d->get_data_to_string()) { - $stations = json_decode($d->get_data(), true); - $this->comm_radio_do_page_buttons($this->page, count($stations), $this->pagination); - for ($i = 0; $i < $this->pagination; $i++) { - $index = $this->page * $this->pagination + $i; - if ($index >= count($stations)) { - break; - } - $this->doStation($this->comm_radio_sanitise_station($stations[$index]), $index); - } - $this->comm_radio_do_page_buttons($this->page, count($stations), $this->pagination); - } - - } - - public function closeDropdown() { - print '
    '; - } - - // -- Private Functions -- // - - private function doStation($station, $index) { - print albumHeader(array( - 'id' => 'communityradio_'.$index, - 'Image' => $this->comm_radio_get_image($station), - 'Searched' => 1, - 'AlbumUri' => null, - 'Year' => null, - 'Artistname' => preg_replace('/,/', ', ', htmlspecialchars($station['tags'])), - 'Albumname' => htmlspecialchars($station['name']), - 'why' => 'whynot', - 'ImgKey' => 'none', - 'streamuri' => $station['playurl'], - 'streamname' => $station['name'], - 'streamimg' => $this->comm_radio_get_stream_image($station), - 'class' => 'radiochannel' - )); - print '
    '; - trackControlHeader('','','communityradio_'.$index, array(array('Image' => $this->comm_radio_get_image($station)))); - print '
    Listen:
    '; - print ''; - print '
    '.utf8_encode($station['state']).utf8_encode($station['country']).'
    '; - print '
    '.utf8_encode($station['votes']).' Upvotes, '.utf8_encode($station['negativevotes']).' Downvotes
    '; - if ($station['homepage']) { - print ''; - print ''; - print ''; - } - print '
    '; - - } - - private function makeSelector($json, $which, $setting) { - print ''; - } - - private function comm_radio_make_list_button($which) { - print '
    '; - print ''; - print 'listby == $which) { - print ' checked'; - } - print ' />'; - print ''; - print ''; - print '
    '; - } - - private function comm_radio_get_image($station) { - if ($station['favicon']) { - if (substr($station['favicon'], 0, 10) == 'data:image') { - return $station['favicon']; - } else { - return 'getRemoteImage.php?url='.$station['favicon'].'&rompr_backup_type=stream'; - } - } else { - return 'newimages/broadcast.svg'; - } - } - - private function comm_radio_get_stream_image($station) { - if ($station['favicon']) { - if (substr($station['favicon'], 0, 10) == 'data:image') { - // Sadly we can't handle base64 data as a stream image in this way. The URLs are too long - return ''; - } else { - return 'getRemoteImage.php?url='.$station['favicon']; - } - } else { - return ''; - } - } - - private function comm_radio_do_page_buttons($page, $count, $per_page) { - print '
    '; - - $firstpage = max(0, $page-4); - $lastpage = min($firstpage+9, round(($count/$per_page), 0, PHP_ROUND_HALF_DOWN)); - print ''; - - print '
    '; - } - - private function comm_radio_sanitise_station($station) { - global $prefs; - $blank_station = array( - 'tags' => '', - 'name' => ROMPR_UNKNOWN_STREAM, - 'state' => '', - 'country' => '', - 'votes' => 0, - 'negativevotes' => 0, - 'codec' => 'Unknown Codec', - 'bitrate' => 'Unknown ', - 'favicon' => null, - 'homepage' => null - ); - - $result = array_merge($blank_station, $station); - if ($result['state'] && $result['country']) { - $result['state'] .= ', '; - } - if ($result['bitrate'] == 0) { - $result['bitrate'] = 'Unknown '; - } - // No real idea whay one works for one player but not the other. MPD won't load the M3U files, - // Mopidy won't load the PLS files. All I do is send a load/add and a URL..... - if ($prefs['player_backend'] == 'mpd') { - $result['playurl'] = 'http://www.radio-browser.info/webservice/v2/pls/url/'.$station['id']; - } else { - $result['playurl'] = 'http://www.radio-browser.info/webservice/v2/m3u/url/'.$station['id']; - } - return $result; - } - -} - -if (array_key_exists('populate', $_REQUEST)) { - - chdir('..'); - - include ("includes/vars.php"); - include ("includes/functions.php"); - include ("international.php"); - include ("skins/".$skin."/ui_elements.php"); - - foreach ($_REQUEST as $i => $r) { - logger::log("COMMRADIO", $i,":",$r); - } - - $commradio = new commradioplugin(); - $commradio->parseParams(); - - if ($_REQUEST['populate'] == 1) { - $commradio->doDropdownHeader(); - } - - $commradio->doRequest(); - - if ($_REQUEST['populate'] == 1) { - $commradio->closeDropdown(); - } - -} else { - - $commradio = new commradioplugin(); - $commradio->doHeader(); - -} - -?> diff --git a/www/rompr/streamplugins/85_iceScraper.php b/www/rompr/streamplugins/85_iceScraper.php deleted file mode 100644 index 7979224..0000000 --- a/www/rompr/streamplugins/85_iceScraper.php +++ /dev/null @@ -1,142 +0,0 @@ - $getstr)); - $d->get_data_to_string(); - $icecast_shitty_page = preg_replace('/<\?xml.*?\?>/', '', $d->get_data()); - $doc = phpQuery::newDocument($icecast_shitty_page); - $list = $doc->find('table.servers-list')->find('tr'); - $page_title = $doc->find('#content')->children('h2')->text(); - logger::log("ICESCRAPER", "Page Title Is ".$page_title); - $count = 0; - directoryControlHeader('icecastlist', get_int_text('label_icecast')); - print '
    '; - print '
    '; - - print '
    '.$page_title.'
    '; - foreach ($list as $server) { - $server_web_link = ''; - $server_name = pq($server)->find('.stream-name')->children('.name')->children('a'); - $server_web_link = $server_name->attr('href'); - $server_name = $server_name->text(); - logger::log("ICESCRAPER", "Server Name Is ".$server_name); - $server_description = munge_ice_text(pq($server)->find('.stream-description')->text()); - $stream_tags = array(); - $stream_tags_section = pq($server)->find('.stream-tags')->find('li'); - foreach ($stream_tags_section as $tag) { - $stream_tags[] = pq($tag)->children('a')->text(); - } - $listeners = pq($server)->find('.listeners')->text(); - $listenlinks = pq($server)->find('.tune-in'); - $listenlink = ''; - $format = ''; - $ps = $listenlinks->find('p'); - foreach ($ps as $p) { - if (pq($p)->hasClass('format')) { - $format = pq($p)->attr('title'); - } else { - foreach(pq($p)->children('a') as $a) { - $l = pq($a)->attr('href'); - if (substr($l, -5) == ".xspf") { - $listenlink = 'http://dir.xiph.org'.$l; - } - } - } - } - - if ($listenlink != '') { - print albumHeader(array( - 'id' => 'icecast_'.$count, - 'Image' => 'newimages/icecast.svg', - 'Searched' => 1, - 'AlbumUri' => null, - 'Year' => null, - 'Artistname' => implode(', ', $stream_tags), - 'Albumname' => htmlspecialchars($server_name), - 'why' => 'whynot', - 'ImgKey' => 'none', - 'streamuri' => $listenlink, - 'streamname' => $server_name, - // 'streamimg' => 'newimages/icecast.svg', - 'streamimg' => '', - 'class' => 'radiochannel' - )); - print '
    '; - trackControlHeader('','','icecast_'.$count, array(array('Image' => 'newimages/icecast.svg'))); - print '
    '; - print '
    '.$server_description.'
    '; - print '
    '; - print '
    '.$listeners.'
    '; - print '
    '; - print '
    '; - print 'Listen '.$format; - print '
    '; - print '
    '; - print ''; - print ''; - print ''; - print '
    '; - } - $count++; - } - - $pager = $doc->find('ul.pager')->children('li'); - print '
    '; - foreach ($pager as $page) { - $link = pq($page)->children('a')->attr('href'); - print '
    '.pq($page)->children('a')->text().'
    '; - } - print '
    '; - -} else { - print '
    '; - print albumHeader(array( - 'id' => 'icecastlist', - 'Image' => 'newimages/icecast.svg', - 'Searched' => 1, - 'AlbumUri' => null, - 'Year' => null, - 'Artistname' => '', - 'Albumname' => get_int_text('label_icecast'), - 'why' => null, - 'ImgKey' => 'none', - 'class' => 'radio', - 'expand' => true - )); - print '
    '.get_int_text('label_loading').'
    '; - print '
    '; -} - -function munge_ice_text($text) { - $monkeyjesus = preg_replace('/(? diff --git a/www/rompr/streamplugins/communityradio.js b/www/rompr/streamplugins/communityradio.js deleted file mode 100644 index 21ae9f7..0000000 --- a/www/rompr/streamplugins/communityradio.js +++ /dev/null @@ -1,132 +0,0 @@ -var communityRadioPlugin = { - - page: 0, - searching: false, - - loadBigRadio: function() { - if ($("#communityradiolist").hasClass('notfilled')) { - $('i[name="communityradiolist"]').makeSpinner(); - $("#communityradiolist").load(communityRadioPlugin.getUri(1), - function() { - $('i[name="communityradiolist"]').stopSpinner(); - $('#communityradiolist').removeClass('notfilled'); - communityRadioPlugin.setTheThing(); - uiHelper.hackForSkinsThatModifyStuff("#communitystations"); - layoutProcessor.postAlbumActions(); - } - ); - } - }, - - update: function() { - $('i[name="communityradiolist"]').makeSpinner(); - $('#communitystations').load(communityRadioPlugin.getUri(2), - function() { - $('i[name="communityradiolist"]').stopSpinner(); - uiHelper.hackForSkinsThatModifyStuff("#communitystations"); - layoutProcessor.postAlbumActions(); - } - ); - }, - - getUri: function(p) { - var uri; - if (communityRadioPlugin.searching) { - uri = 'streamplugins/04_communityradio.php?populate='+p+ - '&listby=search'+ - '&order='+prefs.communityradioorderby+ - '&page='+communityRadioPlugin.page; - $('.comm_radio_searchterm').each(function() { - if ($(this).val() != '') { - uri += '&'+$(this).attr('name')+'='+$(this).val(); - } - }); - } else { - uri = 'streamplugins/04_communityradio.php?populate='+p+ - '&listby='+prefs.communityradiolistby+ - '&country='+prefs.communityradiocountry+ - '&tag='+prefs.communityradiotag+ - '&language='+prefs.communityradiolanguage+ - '&order='+prefs.communityradioorderby+ - '&page='+communityRadioPlugin.page; - } - return encodeURI(uri); - - }, - - setTheThing: function() { - $('input[name="commradiolistby"]').on('click', communityRadioPlugin.changeListBy); - $('select[id="commradioorderby"]').on('change', communityRadioPlugin.changeOrderBy); - $('button[name="commradiosearch"]').on('click', communityRadioPlugin.search); - $('#communityradiolist select.comradiolistby').on('change', communityRadioPlugin.changeOption); - var w = 0; - $.each($(".cslt"), function() { - if ($(this).width() > w) { - w = $(this).width(); - } - }); - w += 8; - $(".comm-search-label").css("width", w+"px"); - w = 0; - $.each($(".cclb"), function() { - if ($(this).width() > w) { - w = $(this).width(); - } - }); - w += 8; - $(".commradiolistby").css("width", w+"px"); - - }, - - changeOption: function() { - var n = $(this).attr('id'); - var pref = Array(); - pref[n] = $(this).val(); - prefs.save(pref); - var listby = n.replace('communityradio', ''); - $('input#commradiolistby'+listby).prop('checked', true); - communityRadioPlugin.changeListBy(); - }, - - changeListBy: function() { - var listby = $('input[name="commradiolistby"]:checked').val(); - prefs.save({communityradiolistby: listby}); - communityRadioPlugin.page = 0; - communityRadioPlugin.searching = false; - $('.comm_radio_searchterm').val(''); - communityRadioPlugin.update(); - }, - - changeOrderBy: function() { - var orderby = $('select[id="commradioorderby"]').val(); - prefs.save({communityradioorderby: orderby}); - communityRadioPlugin.page = 0; - communityRadioPlugin.update(); - }, - - search: function() { - communityRadioPlugin.searching = true; - communityRadioPlugin.page = 0; - communityRadioPlugin.update(); - }, - - handleClick: function(event, clickedElement) { - debug.log("COMM RADIO", "Handling Click"); - if (clickedElement.hasClass('clickcommradioforward')) { - communityRadioPlugin.page++; - clickedElement.off('click').makeSpinner(); - communityRadioPlugin.update(); - } else if (clickedElement.hasClass('clickcommradioback')) { - communityRadioPlugin.page--; - clickedElement.off('click').makeSpinner(); - communityRadioPlugin.update(); - } else if (clickedElement.hasClass('clickcommradiopager')) { - communityRadioPlugin.page = clickedElement.attr('name'); - clickedElement.off('click').makeSpinner(); - communityRadioPlugin.update(); - } - } -} - -menuOpeners['communityradiolist'] = communityRadioPlugin.loadBigRadio; -clickRegistry.addClickHandlers('commradio', communityRadioPlugin.handleClick); diff --git a/www/rompr/streamplugins/icescraper.js b/www/rompr/streamplugins/icescraper.js deleted file mode 100644 index f076d32..0000000 --- a/www/rompr/streamplugins/icescraper.js +++ /dev/null @@ -1,39 +0,0 @@ -var icecastPlugin = { - - refreshMyDrink: function(path) { - if ($("#icecastlist").hasClass('notfilled')) { - icecastPlugin.makeabadger(); - $("#icecastlist").load("streamplugins/85_iceScraper.php?populate", icecastPlugin.spaghetti); - } else if (path) { - icecastPlugin.makeabadger(); - $("#icecastlist").load("streamplugins/85_iceScraper.php?populate=1&path="+path, icecastPlugin.spaghetti); - } - }, - - makeabadger: function() { - $('i[name="icecastlist"]').makeSpinner(); - }, - - spaghetti: function() { - $('i[name="icecastlist"]').stopSpinner(); - // $('[name="searchfor"]').on('keyup', onKeyUp); - $('[name="cornwallis"]').on('click', icecastPlugin.iceSearch); - $("#icecastlist").removeClass('notfilled'); - layoutProcessor.postAlbumActions(); - }, - - iceSearch: function() { - icecastPlugin.makeabadger(); - $("#icecastlist").load("streamplugins/85_iceScraper.php?populate=1&searchfor="+encodeURIComponent($('input[name="searchfor"]').val()), icecastPlugin.spaghetti); - }, - - handleClick: function(event, clickedElement) { - if (clickedElement.hasClass("clickicepager")) { - icecastPlugin.refreshMyDrink(clickedElement.attr('name')); - } - } - -} - -menuOpeners['icecastlist'] = icecastPlugin.refreshMyDrink; -clickRegistry.addClickHandlers('icescraper', icecastPlugin.handleClick); diff --git a/www/rompr/streamplugins/somafm.js b/www/rompr/streamplugins/somafm.js deleted file mode 100644 index e6000d3..0000000 --- a/www/rompr/streamplugins/somafm.js +++ /dev/null @@ -1,16 +0,0 @@ -var somaFmPlugin = { - - loadSomaFM: function() { - if ($("#somafmlist").hasClass('notfilled')) { - $('i[name="somafmlist"]').makeSpinner(); - $("#somafmlist").load("streamplugins/01_somafm.php?populate", function( ) { - $('i[name="somafmlist"]').stopSpinner(); - $('#somafmlist').removeClass('notfilled'); - layoutProcessor.postAlbumActions(); - }); - } - } - -} - -menuOpeners['somafmlist'] = somaFmPlugin.loadSomaFM; diff --git a/www/rompr/streamplugins/tuneinradio.js b/www/rompr/streamplugins/tuneinradio.js deleted file mode 100644 index 19eb656..0000000 --- a/www/rompr/streamplugins/tuneinradio.js +++ /dev/null @@ -1,64 +0,0 @@ -var tuneinRadioPlugin = { - - loadBigRadio: function() { - if ($("#tuneinlist").hasClass('notfilled')) { - $('i[name="tuneinlist"]').makeSpinner(); - $("#tuneinlist").load("streamplugins/03_tuneinradio.php?populate=2", function() { - $('i[name="tuneinlist"]').stopSpinner(); - tuneinRadioPlugin.setTheThing(); - $("#tuneinlist").removeClass('notfilled'); - }); - } - }, - - setTheThing: function() { - layoutProcessor.postAlbumActions(); - }, - - handleClick: function(event, clickedElement) { - if (clickedElement.hasClass("browse")) { - event.stopImmediatePropagation(); - if (clickedElement.isClosed()) { - clickedElement.makeSpinner(); - var url = clickedElement.prev().prev().val(); - var title = clickedElement.prev().val(); - var menutoopen = clickedElement.attr("name"); - tuneinRadioPlugin.browse(url, title, menutoopen, function() { - clickedElement.stopSpinner(); - doMenu(null, clickedElement); - tuneinRadioPlugin.setTheThing(); - }); - } else { - doMenu(null, clickedElement); - } - } else if (clickedElement.hasClass("tuneinsearchbutton")) { - tuneinRadioPlugin.search(); - } - - }, - - browse: function(url, title, target, callback) { - $("#"+target).load("streamplugins/03_tuneinradio.php?populate=2&url="+url+'&title='+title+'&target='+target, function() { - callback(); - }); - }, - - search: function() { - var term = $('[name="tuneinsearcher"]').val(); - if (term == '') { - $('#tuneinlist').empty().addClass('notfilled'); - tuneinRadioPlugin.loadBigRadio(); - } else { - debug.log("TUNEIN","Searching For",term); - $('i[name="tuneinlist"]').makeSpinner(); - $("#tuneinlist").load("streamplugins/03_tuneinradio.php?populate=2&search="+encodeURIComponent(term), function() { - $('i[name="tuneinlist"]').stopSpinner(); - tuneinRadioPlugin.setTheThing(); - }); - } - } - -} - -menuOpeners['tuneinlist'] = tuneinRadioPlugin.loadBigRadio; -clickRegistry.addClickHandlers('tunein', tuneinRadioPlugin.handleClick); diff --git a/www/rompr/streamplugins/yourradio.js b/www/rompr/streamplugins/yourradio.js deleted file mode 100644 index b724656..0000000 --- a/www/rompr/streamplugins/yourradio.js +++ /dev/null @@ -1,97 +0,0 @@ -var yourRadioPlugin = { - - loadStations: function() { - if ($('#yourradiostations').is(':empty')) { - $('i[name="yourradiolist"]').makeSpinner(); - $('#yourradiostations').load('utils/userstreams.php?populate', function() { - $('i[name="yourradiolist"]').stopSpinner(); - $('[name="spikemilligan"]').on('click', yourRadioPlugin.loadSuppliedStation); - $("#anaconda").on("drop", yourRadioPlugin.handleDropRadio); - layoutProcessor.postAlbumActions(); - if (layoutProcessor.sortFaveRadios) { - $("#yourradiostations").sortableTrackList({ - items: ".menuitem", - insidedrop: yourRadioPlugin.saveRadioOrder, - scroll: true, - scrollparent: "#radiolist", - scrollspeed: 80, - scrollzone:120, - allowdragout: true - }); - } - }); - } - }, - - updateStreamName: function(streamid, name, uri, callback) { - $.post("utils/userstreams.php", { updatename: 1, streamid: streamid, name: name, uri: uri }) - .done( function(data) { - if (callback) { - callback(); - } - if (!prefs.hide_radiolist) { - $('#yourradiostations').html(data); - } - }); - }, - - addFave: function(data) { - data.addfave = 1; - $.post("utils/userstreams.php", data) - .done( function(data) { - $('#yourradiostations').html(data); - layoutProcessor.postAlbumActions(); - infobar.notify(language.gettext('label_addedradio')); - }); - }, - - removeUserStream: function(name) { - $.post("utils/userstreams.php", {remove: name}) - .done( function(data) { - $('#yourradiostations').html(data); - layoutProcessor.postAlbumActions(); - }) - .fail( function() { - playlist.repopulate(); - infobar.error(language.gettext("label_general_error")); - }); - }, - - saveRadioOrder: function() { - var radioOrder = Array(); - $("#yourradiostations").find(".clickradioremove").each( function() { - radioOrder.push($(this).attr('name')); - }); - - $.ajax({ - type: 'POST', - url: 'utils/userstreams.php', - data: {'order[]': radioOrder} - }); - }, - - handleDropRadio: function() { - setTimeout(function() { yourRadioPlugin.loadSuppliedStation }, 1000); - }, - - loadSuppliedStation: function() { - if ($("#yourradioinput").val() != '') { - var el = new Array(); - el.push($('
    ', {class: 'invisible clickstream', name: $("#yourradioinput").val(), supply: 'user'})); - playlist.addItems(el, null); - el[0].remove(); - } - }, - - handleClick: function(event, clickedElement) { - if (clickedElement.hasClass("clickradioremove")) { - event.stopImmediatePropagation(); - yourRadioPlugin.removeUserStream(clickedElement.attr("name")); - } - - } - -} - -menuOpeners['yourradiolist'] = yourRadioPlugin.loadStations; -clickRegistry.addClickHandlers('yourradio', yourRadioPlugin.handleClick); diff --git a/www/rompr/sw.js b/www/rompr/sw.js deleted file mode 100644 index 0aca893..0000000 --- a/www/rompr/sw.js +++ /dev/null @@ -1,6 +0,0 @@ -self.addEventListener('install', function(e) { - - // This is a dummy function because Chrome needs a service worker - // for Add To Home Screen to work - -}); diff --git a/www/rompr/themes/Acers.css b/www/rompr/themes/Acers.css deleted file mode 100644 index addf8cb..0000000 --- a/www/rompr/themes/Acers.css +++ /dev/null @@ -1,424 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -html, body.phone .dropmenu { - background-image:url("themes/acers2.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; -} - -body.phone .dropmenu>div.playable, -body.phone .dropmenu>div.menuitem, -body.phone #pluginplaylistholder .menuitem.clickicon, -body.phone #pluginplaylistholder .menuitem.containerbox.fullwidth { - background-color:rgba(0,0,0,0.2); - background-clip:border-box; - margin-top: 4px; -} - -body.phone .dropmenu>div { - background-color:rgba(0,0,0,0.2); -} - -body.phone .mainpane .faveradio, -body.phone .mainpane .radio, -body.phone .mainpane .podcast:not(.podicon):not(.podglobal), -body.phone .mainpane .directory { - background-color:rgba(0,0,0,0.3); - background-clip:border-box; - margin-top: 4px; -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input,select { - color:#eeeeee; -} - -a:link { - color:yellow; -} - -a:visited { - color:yellow; -} - -a.album:visited { - color:#220000; -} - -a.album:hover,a.album:active { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -a:hover,a:active { - text-shadow: 0 0 15px #000000; - cursor:pointer; -} - -button, input[type="button"], .filebutton { - color:#dddddd; - background-color:rgba(206,37,214,0.2); - border: 1px solid transparent; - /* border:1px solid #aaaaaa; */ -} - -button:hover, input[type="button"]:hover, .filebutton:hover { - color:#ffffff; - border:1px solid #555555; - text-shadow: 0 0 12px #777777; -} - -.selectholder { - background-color:rgba(0,0,0,0.3); -} - -.selectholder:hover { - background-color:rgba(0,0,0,0.2); -} - -input[type="text"] { - background-color: rgba(0,0,0,0.3); - border-bottom: 1px solid #555555; -} - -input[type="text"]:hover { - background-color: rgba(0,0,0,0.2); - border-bottom: 1px solid #555555; -} - -input[type="text"]:focus { - transition: border-bottom 0.5s ease; - border-bottom: 1px solid #bbbbbb; -} - -select:hover { - color:#ffffff; -} - -.drop-box { - background-color: rgba(0,0,0,0.4); - color:white; -} - -/* reddish-purple */ -#pset { - background-color: rgba(142, 57, 109, 0.99); -} -/* yellowy-brown */ -#pmaxset { - background-color: rgba(151, 139, 106, 0.99); -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#sources, #infobar.coloured, #headerbar, #playlist, #thetopbit { - background-color:rgba(0,0,0,0.3); -} - -#infopane { - background-color:rgba(0,0,0,0.4); -} - -#notifications { - background-color:rgba(0,0,0,0.9); -} - -#wikipopup { - background-color:#000000; - opacity:0.75; -} - -#tagadder { - background-color:rgba(0,0,0,0.8); -} - -#artistchooser { - background-color:rgba(0,0,0,0.3); - color:#aaaaaa; -} - -#dragger { - background-color:rgba(0,0,0,0.3); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.mainpane { - background-color:rgba(0,0,0,0.2); -} - -.album2 { - background-color:rgba(0,0,0,0.2); -} - -.item { - margin-bottom: 2px; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; -} - -.selected { - background-color:rgba(255,72,0,0.5); -} - -.playlistcurrentitem { - font-weight:bold; - font-size:120%; - border-left:4px solid white; - color:#eeeeee; - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.clicktrack.playlistcurrentitem -{ - padding-left:8px; -} - -.playlistitem { - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlistcurrenttitle { - text-shadow: 0px 0px 20px #cccccc; - font-weight:bold; - color:#eeeeee; - background-color:rgba(0,0,0,0.3); -} - -.playlisttitle { - background-color:rgba(0,0,0,0.3); -} - -.stleft { - border-right:1px solid #888888; -} - -.infosection { - background-color:rgba(0,0,0,0.5); -} - -.popupwindow { - background-color:rgba(0,0,0,0.6); -} - -table.histable tr:hover { - font-size:105%; - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - transition:all 0.1s; -} - -table.histable tr { - transition:all 0.2s; -} - -.backhi:hover { - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - cursor:pointer; - transition:all 0.1s; -} - -.backhi { - transition:all 0.2s; -} - -tr.clickaddtrack:hover { - background-color:#e1e4ea; -} - -.bsel { - color:#ffffff; - text-shadow:0 0 15px #ffffff; -} - -.bmid { - border-left:2px solid #ff4800; -} - -.tagholder table tr th { - background-color:rgba(0,0,0,0.5); - border-bottom:1px solid #000000; -} - -.dropshadow { - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.4); -} - -.progressbar { - border:1px solid #666666; -} - -.progressbar_v { - border:1px solid #666666; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu { - background-color:rgba(30,30,30,0.9); -} - -.configtitle { - background-color:rgba(138,45,90,0.4); -} - -body.mobile .configtitle { - width:100%; - margin-left:auto; - margin-right:auto; -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -#artistbio { - padding:4px; -} - -.infowiki { - color:white; -} - -.currentbun { - border-bottom:1px solid #000000; - padding-bottom:2px; -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ - -.helpfulalbum -{ - background-color:rgba(0,0,0,0.4); -} - -.tagholder_wide -{ - background-color:rgba(0,0,0,0.6); -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -#artistcoverslist { - background-color:rgba(0,0,0,0.5); -} - -.highlighted { - background-color:rgba(0,0,0,0.5) !important; -} - -.albumcovers .infosection { - margin-bottom: 0px; -} - -.albumsection { - background-color:rgba(0,0,0,0.5); - box-sizing:border-box; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: rgba(0,0,0,0.2); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid yellow; -} - -.infosection h2 -{ - border-bottom:2px solid white; -} - -.topbarplaycontrols { - background-color: rgba(0,0,0,0.2); -} diff --git a/www/rompr/themes/Aqua.css b/www/rompr/themes/Aqua.css deleted file mode 100644 index f95a45e..0000000 --- a/www/rompr/themes/Aqua.css +++ /dev/null @@ -1,388 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -html, body.phone .dropmenu { - background-color:#e8ebf0; -} - -body,p,h1,h2,h3,h4,h5,h6,table,td,th,ul,ol,textarea,input { - color:#000000; -} - -body.phone .dropmenu>div.playable, -body.phone .dropmenu>div.menuitem, -body.phone .mainpane .radio, -body.phone .mainpane .faveradio, -body.phone .mainpane .podcast:not(.podicon):not(.podglobal), -body.phone .mainpane .directory { - border-top: 1px solid rgba(60,60,60,0.1); -} - -body.phone #pluginplaylistholder .menuitem.clickicon, -body.phone #pluginplaylistholder .menuitem.containerbox.fullwidth { - border-bottom: 1px solid rgba(60,60,60,0.1); -} - -a:link { - color:#0b0080; -} - -a:visited { - color:#0b0080; -} - -a:hover,a:active { - color:#ff4800; -} - -button, input[type="button"], .filebutton { - background-image: linear-gradient(#ccdcf2, #c0d0e7); - color:#000000; - border:1px solid #adadad; -} - -button:hover, input[type="button"]:hover, .filebutton:hover { - color:#3875d7; - border:1px solid #ccdcf2; - text-shadow: 0 0 15px #3875d7; -} - -input { - color:#181818; -} - -input.inbrowser, div.inbrowser { - border: 1px solid #888888; -} - -select { - color:#000000; -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ -#pset { - background-color: rgba(192, 208, 231, 0.99); -} - -#pmaxset { - background-color: rgba(232, 235, 240, 0.99); -} - -#custombackground { - display:none; -} - -#headerbar { - background-image: linear-gradient(#b3b3b3, #afafaf); -} - -#infobar.coloured, #thetopbit { - background-image: linear-gradient(#E5E5E5, #b3b3b3); -} - -#horse { - background-image: linear-gradient(#afafaf, #b4b4b4); -} - -#playlist { - background-image: linear-gradient(#b4b4b4, #e5e5e5); -} - -#notifications { - background-color:#ccdcf2; -} - -#sources { - border-top:1px solid #000000; -} - -#infopane { - border-top:1px solid #000000; -} - -#wikipopup { - background-color:#000000; -} - -#tagadder { - background-color:#cccccc; -} - -#artistchooser { - border-bottom:1px solid #555555; - border-top:1px solid #555555; - color:#555555; -} - -#dragger { - background-color:rgba(0,0,0,0.5); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.bordered { - border-left:1px solid #9a9a9a; - border-bottom:1px solid #e0e0e0; - border-right:1px solid #e0e0e0; - border-top:1px solid #9a9a9a; -} - -.album2 { - background-color:rgba(225,228,234,0.75); -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - color:#3875d7; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#000000; -} - -.selected { - background-color:#3875d7; -} - -.playlistcurrentitem { - color:#3875d7; -} - -.playlistcurrenttitle { - color:#3875d7; -} - -.item { - border-top:1px solid #cccccc; -} - -.stleft { - border-right:1px solid #888888; -} - -.popupwindow { - background-color:#cccccc; - border-left:1px solid #eeeeee; - border-bottom:1px solid #9a9a9a; - border-right:1px solid #9a9a9a; - border-top:1px solid #eeeeee; -} - -table.histable tr:hover { - background-color:#ccdcf2; -} - -.backhi:hover { - background-color:#ccdcf2; - cursor:pointer; -} - -tr.clickaddtrack:hover { - background-color:#e1e4ea; -} - -.tagholder table tr th { - background-color:#e8ebf0; - border-bottom:1px solid #000000; -} - -.bsel { - color:#ff4800; -} - -.bmid { - border-left:2px solid #ff4800; -} - -.currentbun { - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow { - box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.6); -} - -.progressbar { - border:1px solid #414141; -} - -.mCSB_draggerRail { - background:rgba(0,0,0,0.1) !important; -} - -.mCSB_dragger_bar { - background:rgba(0,0,0,0.75) !important; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu -{ - background-image: linear-gradient(#E5E5E5, #b3b3b3); - border-left:1px solid #eeeeee; - border-bottom:1px solid #9a9a9a; - border-right:1px solid #9a9a9a; -} - -.configtitle -{ - background-image: linear-gradient(#E5E5E5, #b3b3b3); -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -.infosection { - background-image: linear-gradient(#E5E5E5, #b3b3b3); -/} - -.infowiki { - background-color:#ffffff; -} - -.inbrowser { - color:#000000; -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ - -.helpfulalbum -{ - background-color:#cccccc; -} - -.tagholder_wide -{ - background-color:#cccccc; -} - -.tagholder_wide .helpfulalbum -{ - background-color:#bcbcbc; -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem -{ - border-top:1px solid #000000; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -.albumsection { - background-color:#b9d2fd; -} - -#imageeditor { - background-color:#b9d2fd; -} - -#albumcovers { - background-color:#adb4cd; -} - -.highlighted { - border-top: 4px solid #fe6800 !important; - border-left: 4px solid #fe6800 !important; - border-right: 4px solid #fe6800 !important; - border-bottom: 4px solid #fe6800 !important; - border-radius:2px !important; -} - -.covercontainer.highlighted -{ - border-bottom: none !important; - margin-bottom:-4px; - background-color:#b9d2fd; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th { - background-color: #e5e5e5; -} - -.navbox-abovebelow { - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th { - font-weight:bold; -} - -.description { - margin-top:4px; -} - -.underline { - border-bottom: 1px solid #444444; -} - -.infosection h2 { - border-bottom:2px solid #444444; -} - -.topbarplaycontrols { - border-left: 1px solid black; - border-right: 1px solid black; -} diff --git a/www/rompr/themes/BrushedAluminium.css b/www/rompr/themes/BrushedAluminium.css deleted file mode 100644 index 7cd67d0..0000000 --- a/www/rompr/themes/BrushedAluminium.css +++ /dev/null @@ -1,365 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -html, body.phone .dropmenu { - color:#000000; - background-image:url('newimages/silver1.jpg'); -} - -h1,h2,h3,h4,h5,h6 { - color:#000000; -} - -a:link { - color:#12569a; -} - -a:visited { - color:#12569a; -} - -a:hover,a:active { - color:#ff4800; -} - -button, .filebutton { - color:#000000; - border: 1px solid #000000; -} - -button:hover, .filebutton:hover { - color:#ff4800; - text-shadow: 0 0 15px #ff4800; -} - -input.inbrowser, div.inbrowser { - border: 1px solid #888888; -} - -.selectholder { - background-color:rgba(0,0,0,0.1); -} - -.selectholder:hover { - background-color:rgba(0,0,0,0.2); -} - -input[type="text"] { - background-color: rgba(0,0,0,0.1); -} - -input[type="text"]:hover { - background-color: rgba(0,0,0,0.2); -} - -input[type="text"]:focus { - transition: border-bottom 0.5s ease; - border-bottom: 1px solid #eeeeee; -} - -.drop-box { - background-color: rgba(0,0,0,0.2); - color:white; -} - -#pset { - background-color: rgba(201, 201, 201, 0.99); -} -#pmaxset { - background-color: rgba(255, 255, 255, 0.99); -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#custombackground { - display:none; -} - -#notifications { - background-image:url('newimages/silver2.jpg');; -} - -#wikipopup { - background-color:#000000; -} - -#imagecontainer { - background-color:#ffffff; -} - -#tagadder { - background-color:#ededed; -} - -#dragger { - background-color:rgba(0,0,0,0.5); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.bordered { - border-left:1px solid #aaaaaa; - border-bottom:1px solid #dddddd; - border-right:1px solid #dddddd; - border-top:1px solid #aaaaaa; -} - -.album1 { - background-image:url('newimages/silver2.jpg'); -} - -.album2 { - background-image:url('newimages/silver1.jpg'); -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - color:#ff4800; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#dddddd; -} - -.selected { - background-color:#CC5500; -} - -.playlistcurrentitem { - color:#cc0000; -} - -.playlistcurrenttitle { - color:#cc0000; -} - -.item { - border-top:1px solid #000000; -} - -.stleft { - border-right:1px solid #aaaaaa; -} - -.popupwindow { - background-color:#dddddd; - border-left:2px solid #ffffff; - border-bottom:2px solid #555555; - border-right:2px solid #555555; - border-top:2px solid #ffffff; -} - -table.histable tr:hover { - background-color:#CC5500; -} - -.backhi:hover { - background-color:#CC5500; - cursor:pointer; -} - -tr.clickaddtrack:hover { - background-image:url('newimages/silver1.jpg'); -} - -.tagholder table tr th { - background-image:url('newimages/silver1.jpg'); - border-bottom:1px solid #000000; -} - -.bsel { - color:#ff4800; -} - -.bmid { - border-left:2px solid #ff4800; -} - -.currentbun { - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow { - box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.6); -} - -.progressbar { - border:1px solid #414141; -} - - -.mCSB_draggerRail { - background:rgba(0,0,0,0.1) !important; -} - -.mCSB_dragger_bar { - background:rgba(0,0,0,0.75) !important; -} - -.textunderline { - border-bottom: 1px solid #222222; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu { - background-image:url('newimages/silver2.jpg');; - border-left:1px solid #ffffff; - border-bottom:1px solid #555555; - border-right:1px solid #555555; - border-top:none; -} - -.configtitle { - background-color:rgba(0,0,0,0.5); - color:white; -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -.infosection { - background-color:#efefef; -} - -.infowiki { - background-color:#ffffff; -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ - -.helpfulalbum { - background-color:#dddddd; -} - -.tagholder_wide { - background-color:#dddddd; -} - -.tagholder_wide .helpfulalbum -{ - background-color:#cdcdcd; -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem { - border-top:1px solid #000000; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -#artistchooser { - border-bottom:1px solid #555555; - border-top:1px solid #555555; - color:#555555; -} - -#albumcovers { - background-color:#eeeeee; -} - -.albumsection { - background-color:#e7e7e7; -} - -.highlighted { - border-top: 4px solid #fe6800 !important; - border-left: 4px solid #fe6800 !important; - border-right: 4px solid #fe6800 !important; - border-bottom: 4px solid #fe6800 !important; - border-radius:2px !important; -} - -.covercontainer.highlighted -{ - border-bottom: none !important; - margin-bottom:-4px; - background-image:url('newimages/silver2.jpg'); -} - -#imageeditor { - background-image:url('newimages/silver2.jpg'); -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th { - background-color: #e5e5e5; -} - -.navbox-title { - color:#000000; -} - -.navbox-group { - color:#000000; -} - -.navbox-abovebelow { - color:#000000; - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - color:#990000; - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - color:#990000; - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - color:#ff4800; - text-decoration:none; -} - -.topbarplaycontrols { - border-left: 1px solid black; - border-right: 1px solid black; -} diff --git a/www/rompr/themes/Crystals.css b/www/rompr/themes/Crystals.css deleted file mode 100644 index 465f9ad..0000000 --- a/www/rompr/themes/Crystals.css +++ /dev/null @@ -1,460 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -html, body.phone .dropmenu { - background-image:url("themes/Crystals.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; -} - -body.phone .dropmenu>div { - background-color:rgba(255,255,255,0.3); - background-clip:border-box; -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea -{ - color:#000000; -} - -a:link -{ - color:#ff4800; -} - -a:visited -{ - color:#ff4800; -} - -a:hover,a:active -{ - text-shadow: 0 0 15px #000000; - cursor:pointer; -} - -button, input[type="button"], .filebutton -{ - color:#000000; - background-color:rgba(255,255,255,0.5); - border:1px solid #222222; -} - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - color:#ffffff; - border:1px solid #ffffff; - text-shadow: 0 0 15px #ffffff; -} - -select { - color:#dddddd; -} - -select:hover { - color:#ffffff; -} - -input { - color: #dddddd; -} - -.selectholder { - background-color:rgba(0,0,0,0.4); -} - -.selectholder:hover { - background-color:rgba(0,0,0,0.5); -} - -input[type="text"] { - background-color: rgba(0,0,0,0.4); - border-bottom: 1px solid #555555; -} - -input[type="text"]:hover { - background-color: rgba(0,0,0,0.5); - border-bottom: 1px solid #555555; -} - -input[type="text"]:focus { - transition: border-bottom 0.5s ease; - border-bottom: 1px solid #bbbbbb; -} - -.drop-box { - background-color: rgba(0,0,0,0.5); - color:white; -} - -#pset { - background-color: rgba(156, 70, 81, 0.99); -} -#pmaxset { - background-color: rgba(187, 240, 254, 0.99); -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#sources -{ - background-color:rgba(255,255,255,0.3); -} - -#playlist -{ - background-color:rgba(255,255,255,0.3); -} - -#notifications -{ - background-color:rgba(65,65,85,0.9); - color:#ffffff; -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -#tagadder -{ - background-color:rgba(65,65,85,0.9); - color:white; -} - -#dragger -{ - background-color:rgba(0,0,0,0.3); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -/*// Some stuff to pretty up the buttons when using the IconFont theme*/ - -.controlbutton { - text-shadow: 0 0 30px #cccccc, 0 0 20px #ffffff !important; -} - -.controlbutton-small { - text-shadow: 0 0 30px #cccccc, 0 0 20px #ffffff !important; -} - -.mainpane -{ - background-color:rgba(255,255,255,0.3); -} - -.album2 -{ - background-color:rgba(255,255,255,0.2); -} - -.item -{ - margin-bottom: 2px; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; -} - -div.clickable.selected:hover -{ - color:#ffffff; -} - -.selected -{ - background-color:rgba(255,72,0,0.7); -} - -/*-- divs and classes used in the playlist --*/ - -.playlistcurrentitem -{ - font-weight:bold; - font-size:120%; - color:#ff4800; - transition:font-size 0.2s ease, text-shadow 0.2s ease; -} - -.playlistitem -{ - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlistcurrenttitle -{ - text-shadow: 0px 0px 20px #cccccc; - font-weight:bold; - color:#ff4800; - background-color:rgba(255,255,255,0.2); -} - -.playlisttitle{ - background-color:rgba(255,255,255,0.2); -} - -.stleft -{ - border-right:1px solid #888888; -} - -.popupwindow -{ - background-color:rgba(65,65,85,0.9); - color:white; -} - -.popupwindow td, .popupwindow h2, .popupwindow p -{ - color:white; -} - -table.histable tr:hover { - font-size:105%; - text-shadow: 0 0 15px #ffffff; - color:#000000; - transition:all 0.1s; -} - -table.histable tr -{ - transition:all 0.2s; -} - -.backhi:hover { - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - cursor:pointer; - transition:all 0.1s; -} - -.backhi -{ - transition:all 0.2s; -} - -tr.clickaddtrack:hover -{ - background-color:#e1e4ea; -} - -.bsel -{ - color:#000000; - text-shadow:0 0 15px #666666; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.tagholder table tr th { - background-color:rgba(255,255,255,0.5); - border-bottom:1px solid #333333; -} - -.currentbun -{ - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.5); -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border:1px solid #414141; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu -{ - background-color:rgba(1,133,215,0.9); -} - -.configtitle -{ - background-color: rgba(162, 72, 84, 0.7); -} - -body.mobile .configtitle -{ - width:100%; - margin-left:auto; - margin-right:auto; -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -#infopane -{ - background-color:rgba(255,255,255,0.4); -} - -#artistbio -{ - padding:4px; -} - -.infowiki -{ - color:black; -} - -.infosection -{ - background-color:rgba(255,255,255,0.4); - background-size:cover; - background-repeat:no-repeat; -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ -.helpfulalbum -{ - background-color:rgba(255,255,255,0.4); -} - -.tagholder_wide -{ - background-color:rgba(255,255,255,0.3); -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem -{ - border-top:1px solid #000000; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -#artistcoverslist -{ - background-color:rgba(255,255,255,0.3); -} - -.highlighted { - background-color:rgba(255,255,255,0.7); -} - -#artistchooser -{ - background-color:rgba(255,255,255,0.2); - color:#777777; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: rgba(255,255,255,0.2); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid black; -} - -.infosection h2 -{ - border-bottom:2px solid black; -} - -.topbarplaycontrols { - background-color: rgba(0,0,0,0.2); -} diff --git a/www/rompr/themes/Crystals.jpg b/www/rompr/themes/Crystals.jpg deleted file mode 100644 index cbc4ae0..0000000 Binary files a/www/rompr/themes/Crystals.jpg and /dev/null differ diff --git a/www/rompr/themes/Curves.css b/www/rompr/themes/Curves.css deleted file mode 100644 index 78e7608..0000000 --- a/www/rompr/themes/Curves.css +++ /dev/null @@ -1,510 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -html, body.phone .dropmenu { - background-image: linear-gradient(#999999, #eeeeee, #aaaaaa); - background-color:#aaaaaa; -} - -body,p,h1,h2,h3,h4,h5,h6,table,td,th,ul,ol,textarea,input -{ - color:#000000; -} -a:link -{ - color:#0b0080; -} - -a:visited -{ - color:#0b0080; -} - -a:hover,a:active -{ - text-shadow: 0 0 15px #ff4800; - cursor:pointer; -} - -button, input[type="button"], .filebutton -{ - background-image: linear-gradient(#999999, #cccccc, #999999); - color:#ee3700; - border:0px none; - border-radius:0.5em; -} - -input -{ - color:#181818; - border-radius: 0.5em !important; -} - -input.inbrowser, div.inbrowser -{ - border: 1px solid #888888; -} - -select -{ - color:#000000; - border-radius:0.5em !important; -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#custombackground -{ - display:none; -} - -#notifications -{ - background-image: linear-gradient(#999999, #cccccc, #999999); - border-bottom-left-radius:1em; - border-bottom-right-radius:1em; -} - -#wikipopup -{ - background-color:#000000; - border-radius: 1em; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -#wobblebottom { - background-color:#aaaaaa; -} - -#tagadder -{ - background-color:#cccccc; - border-radius:1em; -} - -#dragger -{ - background-color:rgba(0,0,0,0.5); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.bordered -{ - border-left:1px solid #9a9a9a; - border-bottom:1px solid #e0e0e0; - border-right:1px solid #e0e0e0; - border-top:1px solid #9a9a9a; - border-radius:1em; -} - -.progressbar_v, .progressbar -{ - border-radius:1em; -} - -.selectholder -{ - border-radius:0.5em !important; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 15px #ff4800; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#000000; -} - -.selected -{ - background-color:#ff4800; -} - -.playlistcurrentitem -{ - font-weight:bold; - font-size:105%; - text-shadow: 0 0 15px #ff4800; - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlistitem -{ - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlistcurrenttitle -{ - text-shadow: 0 0 15px #ff4800; - font-weight:bold; -} - -.inbrowser -{ - color:#000000; -} - -.stleft -{ - border-right:1px solid #888888; -} - -.popupwindow -{ - background-image: linear-gradient(#999999, #cccccc, #999999); - border-left:1px solid #eeeeee; - border-bottom:1px solid #9a9a9a; - border-right:1px solid #9a9a9a; - border-top:1px solid #eeeeee; - border-radius:1em; -} - -.tagmenu -{ - border-radius:1em; -} - -table.histable tr:hover { - font-size:105%; - text-shadow: 0 0 15px #ff4800; - transition:all 0.1s; -} - -table.histable tr -{ - transition:all 0.2s; -} - -.backhi:hover { - text-shadow: 0 0 15px #ff4800; - cursor:pointer; - transition:all 0.1s; -} - -.backhi -{ - transition:all 0.2s; -} - -tr.clickaddtrack:hover -{ - background-color:#e1e4ea; -} - -.tagholder table tr th { - background-color:rgba(255,255,255,0.5); - border-bottom:1px solid #cccccc; -} - -.bsel -{ - color:#ff4800; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.currentbun -{ - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.6); -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border-left:1px solid #9a9a9a; - border-bottom:1px solid #e0e0e0; - border-right:1px solid #e0e0e0; - border-top:1px solid #9a9a9a; -} - -.mCSB_draggerRail -{ - background:rgba(0,0,0,0.1) !important; -} - -.mCSB_dragger_bar -{ - background:rgba(0,0,0,0.75) !important; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu -{ - background-image: linear-gradient(#999999, #cccccc, #999999); - border-left:1px solid #eeeeee; - border-bottom:1px solid #9a9a9a; - border-right:1px solid #9a9a9a; -} - -div.rightmenu -{ - border-top-left-radius: 1em; - border-top-right-radius: 0; - border-bottom-left-radius: 1em; - border-bottom-right-radius: 1em; -} - -div.leftmenu -{ - border-top-left-radius: 0; - border-top-right-radius: 1em; - border-bottom-left-radius: 1em; - border-bottom-right-radius: 1em; -} - -.configtitle -{ - background-image: linear-gradient(#999999, #cccccc, #999999); - border-radius:0.5em; - color:#000000; -} - -body.mobile .configtitle -{ - width:95%; - margin-left:auto; - margin-right:auto; -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -.infowiki -{ - background-image: linear-gradient(#ffffff, #aaaaaa); -} - -.infosection -{ - background-image: linear-gradient(#999999, #eeeeee, #999999); - border-radius:1em; - padding-left:1em; -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ - -.helpfulalbum -{ - background-color: #d0d0d0; - border-radius:1em; -} - -.containerbox .podcast .helpfulalbum.expand -{ - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; -} - -.containerbox .podcast .helpfulalbum.fixed -{ - border-top-left-radius: 0px; - border-top-right-radius: 0px; -} - -.tagholder_wide -{ - background-color: #d0d0d0; - border-radius:1em; -} - -.tagholder_wide .helpfulalbum -{ - background-color: #c0c0c0; -} - -.tagholder_wide .helpfulalbum.tleft -{ - padding-top:1.5% !important; -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem -{ - border-top:1px solid #000000; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - color:#ff4800; - text-shadow: 0 0 15px #ff4800; -} - -.albumsection -{ - background-image: linear-gradient(#999999, #eeeeee, #999999); - border-radius:1em; - padding-left:1em; - box-sizing:border-box; -} - -#albumcovers -{ - background-image: linear-gradient(#ffffff, #aaaaaa); -} - -.highlighted { - border-top: 4px solid #fe6800 !important; - border-left: 4px solid #fe6800 !important; - border-right: 4px solid #fe6800 !important; - border-bottom: 4px solid #fe6800 !important; - border-radius:12px !important; -} - -.covercontainer.highlighted -{ - border-bottom: none !important; - margin-bottom:-4px; - background-color:#aaaaaa; - border-radius:12px 12px 0px 0px !important; -} - -#imageeditor -{ - border-radius:12px !important; - background-color:#aaaaaa; -} - -#artistchooser -{ - border-bottom:1px solid #555555; - border-top:1px solid #555555; - color:#555555; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: rgba(0,0,0,0.1); -} - -div.toc -{ - border-radius:1em; -} - -.infobox -{ - border-radius:1em; -} - -table.infobox th -{ - border-radius:1em; -} - -.quotebox -{ - border-radius:1em; -} - -.infotext table -{ - border-radius:1em !important; -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid #444444; -} - -.infosection h2 -{ - border-bottom:2px solid #444444; -} diff --git a/www/rompr/themes/Darkness.css b/www/rompr/themes/Darkness.css deleted file mode 100644 index b7a61d7..0000000 --- a/www/rompr/themes/Darkness.css +++ /dev/null @@ -1,466 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -html, body.phone .dropmenu { - background-color:#181818; -} - -body.phone .dropmenu div.playable, body.phone .dropmenu div.menu { - background-color: rgba(100,100,100,0.1); -} - -body,p,h1,h2,h3,h4,h5,h6,table,td,th,ul,ol,textarea,input -{ - color:#dddddd; -} - -button, input[type="button"], .filebutton -{ - background-color:#202020; - border:1px solid #dedede; - /* background-image:none !important; */ - color:#dddddd; - font-weight:bold; - font-size:110%; -} - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - color:#ff4800; - border:1px solid #ff4800; - text-shadow: 0 0 15px #ff4800; -} - -input[type="submit"] -{ - color: #ffffff; -} - -a:link -{ - color:#dcdcff; -} - -a:visited -{ - color:#dcdcff; -} - -a:hover,a:active -{ - color:#ff4800; -} - -select { - color:#dddddd; -} - -select:hover { - color:#ffffff; -} - -.selectholder { - background-color:rgba(0,0,0,0.3); - border: 1px solid #555555; -} - -.selectholder:hover { - background-color:rgba(0,0,0,0.2); -} - -input[type="text"] { - background-color: rgba(0,0,0,0.3); - border-bottom: 1px solid #555555; - border-top: 1px solid #232323; -} - -input[type="text"]:hover { - background-color: rgba(0,0,0,0.2); -} - -input[type="text"]:focus { - transition: border-bottom 0.5s ease; - transition: border-top 0.5s ease; - border-bottom: 1px solid #bbbbbb; - border-top: 1px solid #555555; -} - -.drop-box { - background-color: rgba(0,0,0,0.2); - color:white; -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#headerbar -{ - background-color:#181818; -} - -#infopane -{ - box-sizing:border-box; - border-left: 2px solid gray; - border-right: 2px solid gray; - border-top: 2px solid gray; -} - -#custombackground -{ - display:none; -} - -#notifications -{ - background-color:#000000; -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -#tagadder -{ - background-color:#000000; - border-left:1px solid #666666; - border-bottom:1px solid #000000; - border-right:1px solid #000000; -} - -#dragger -{ - background-color:rgba(255,255,255,0.3); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.bordered -{ - border-left:1px solid #000000; - border-bottom:1px solid #232323; - border-right:1px solid #232323; - border-top:1px solid #000000; -} - -.album1 -{ - background-color:#252525; -} - -.album2 -{ - background-color:#181818; -} - -a.album:visited -{ - color:#dcdcff; -} - -a.album:hover,a.album:active -{ - color:#ff4800; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - color:#ff4800; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#dddddd; -} - -.selected -{ - background-color:#CC5500; -} - -.playlistcurrentitem -{ - font-size:110%; - text-shadow: 0 0 15px #ffffff; - transition:font-size 0.5s ease, text-shadow 0.5s ease; - color:#ffffff; -} - -.playlistitem, .playlistalbum -{ - transition:font-size 0.5s ease, text-shadow 0.5s ease; -} - -.playlistcurrenttitle -{ - font-size: 125%; - text-shadow: 0 0 20px #ffffff; - color:#ffffff; - transition:font-size 0.5s ease, text-shadow 0.5s ease; -} - -.item -{ - border-top:1px solid #cccccc; -} - -.stleft -{ - border-right:1px solid #aaaaaa; -} - -.popupwindow -{ - background-color:#111111; - border-left:1px solid #666666; - border-bottom:1px solid #000000; - border-right:1px solid #000000; - border-top:1px solid #666666; -} - -.backhi:hover { - color:#ff4800; - cursor:pointer; -} - -table.histable tr:hover { - background-color:#ff4800; - cursor:pointer; -} - -.tagholder table tr th -{ - border-bottom:1px solid #cccccc; - background-color:#000000; -} - -tr.clickaddtrack:hover -{ - background-color:#353535; -} - -.bsel -{ - color:#ff4800; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.currentbun -{ - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.9); -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border-left:1px solid #000000; - border-bottom:1px solid #343434; - border-right:1px solid #343434; - border-top:1px solid #000000; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu -{ - background-color:#191919; - border-left:1px solid #262626; - border-bottom:1px solid #000000; - border-right:1px solid #000000; - border-top:none; -} - -.configtitle -{ - background-color:#252525; - border-bottom: 1px solid #555555; -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -.infowiki -{ - background-color:#181818; -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ - -.helpfulalbum -{ - background-color:#303030; -} - -.tagholder_wide -{ - background-color:#404040; -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -.albumsection -{ - background-color:#000000; -} - -#albumcovers -{ - background-color:#444444; -} - -#coverslist -{ - box-sizing:border-box; - border-left:1px solid #bbbbbb; -} - -.highlighted { - border-top: 4px solid #fe6800 !important; - border-left: 4px solid #fe6800 !important; - border-right: 4px solid #fe6800 !important; - border-bottom: 4px solid #fe6800 !important; - border-radius:2px !important; -} - -.covercontainer.highlighted -{ - border-bottom: none !important; - margin-bottom:-4px; - background-color:#181818; -} - -#imageeditor -{ - background-color:#181818; -} - -#artistchooser -{ - border-bottom:1px solid #777777; - color:#555555; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: rgba(255,255,255,0.1); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -th.tlheader -{ - background-color:#232323; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid #999999; -} - -.infosection h2 -{ - border-bottom:2px solid #eeeeee; -} - -.topbarplaycontrols { - border-left: 1px solid white; - border-right: 1px solid white; -} diff --git a/www/rompr/themes/DarknessHiDPI.css b/www/rompr/themes/DarknessHiDPI.css deleted file mode 100644 index 50c3429..0000000 --- a/www/rompr/themes/DarknessHiDPI.css +++ /dev/null @@ -1,455 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -html, body.phone .dropmenu { - background: #101010 url("themes/bg.jpg"); - background-image: -webkit-radial-gradient(50% 150px, circle cover, rgba(200, 125, 0, 0.0980392) 12%, rgba(0, 0, 0, 0.2) 51%), url("themes/bg.jpg"); - background-image: -moz-radial-gradient(50% 150px, circle cover, rgba(200, 125, 0, 0.0980392) 12%, rgba(0, 0, 0, 0.2) 51%), url("themes/bg.jpg"); - background-image: -ms-radial-gradient(50% 150px, circle cover, rgba(200, 125, 0, 0.0980392) 12%, rgba(0, 0, 0, 0.2) 51%), url("themes/bg.jpg"); - background-image: -o-radial-gradient(50% 150px, circle cover, rgba(200, 125, 0, 0.0980392) 12%, rgba(0, 0, 0, 0.2) 51%), url("themes/bg.jpg"); - background-image: radial-gradient(50% 150px, circle cover, rgba(200, 125, 0, 0.0980392) 12%, rgba(0, 0, 0, 0.2) 51%), url("themes/bg.jpg"); - background-repeat: no-repeat, repeat; - background-attachment: fixed; - min-height: 100%; -} - -body,p,h1,h2,h3,h4,h5,h6,table,td,th,ul,ol,textarea,input -{ - color:#dddddd; -} - -button, .filebutton -{ - background-color:#202020; - border:1px solid #dedede; - /* background-image:none !important; */ - color:#dddddd; - font-weight:bold; - font-size:110%; -} - -button:hover, .filebutton:hover -{ - color:#ff4800; - text-shadow: 0 0 15px #ff4800; -} - -input -{ - color:#181818; -} - -input.snapclientname[type=text] { - color: #ffffff; -} - -a:link -{ - color:#dcdcff; -} - -a:visited -{ - color:#dcdcff; -} - -a:hover,a:active -{ - color:#ff4800; -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#custombackground -{ - display:none; -} - -#volumecontrol -{ - height:98%; - width:18px; -} - -#notifications -{ - background-color:#000000; -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -#tagadder -{ - background-color:#000000; - border-left:1px solid #666666; - border-bottom:1px solid #000000; - border-right:1px solid #000000; -} - -#dragger -{ - background-color:rgba(255,255,255,0.3); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.bordered -{ - border-bottom:1px solid #343434; -} - -.infobarlayout -{ - margin: 0px; - padding-right: 12px; -} - -.progressbar_v -{ - /* width:auto; */ - border-radius:5px; -} - -.progressbar_v:hover -{ - border-color:#666; - box-shadow: 0 0 15px #666; -} - -.progressbar:hover -{ - border-color:#666; - box-shadow: 0 0 15px #666; -} - -.album1 -{ - background-color:#252525; -} - -.album2 -{ - background-color:#181818; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - color:#ff4800; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#dddddd; -} - -.selected -{ - background-color:#CC5500; -} - -.playlistcurrentitem -{ - color:#cc0000; -} - -.playlistcurrenttitle -{ - color:#cc0000; -} - -.item -{ - border-top:1px solid #cccccc; -} - -.inbrowser -{ - color:#000000; -} - -.stleft -{ - border-right:1px solid #aaaaaa; -} - -.popupwindow -{ - background-color:#111111; - border-left:1px solid #666666; - border-bottom:1px solid #000000; - border-right:1px solid #000000; - border-top:1px solid #666666; -} - -.backhi:hover { - background-color:#454545; - cursor:pointer; -} - -.tagholder table tr th -{ - border-bottom:1px solid #cccccc; - background-color:#000000; -} - -tr.clickaddtrack:hover -{ - background-color:#353535; -} - -.drop-box -{ - background-color:#fefefe; - color:#090909; -} - -.bsel -{ - color:#ff4800; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.currentbun -{ - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.8); -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border-left:1px solid #000000; - border-bottom:1px solid #343434; - border-right:1px solid #343434; - border-top:1px solid #000000; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu -{ - background-color:#191919; - border-left:1px solid #262626; - border-bottom:1px solid #000000; - border-right:1px solid #000000; - border-top:none; -} - -.configtitle -{ - background-color:#252525; -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -.infosection -{ - border-top:1px solid #000000; -} - -.infowiki -{ - background-color:#181818; - background-color:rgba(24, 24, 24, 0.4); -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ - -.helpfulalbum -{ - background-color:#303030; -} - -.tagholder_wide -{ - background-color:#404040; -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -.albumsection -{ - background-color:#000000; -} - -#albumcovers -{ - background-color:#444444; -} - -#coverslist -{ - box-sizing:border-box; - border-left:1px solid #bbbbbb; -} - -.highlighted { - border-top: 4px solid #fe6800 !important; - border-left: 4px solid #fe6800 !important; - border-right: 4px solid #fe6800 !important; - border-bottom: 4px solid #fe6800 !important; - border-radius:2px !important; -} - -.covercontainer.highlighted -{ - border-bottom: none !important; - margin-bottom:-4px; - background-color:#181818; - background: #101010 url("themes/bg.jpg"); - background-image: -webkit-radial-gradient(50% 150px, circle cover, rgba(200, 125, 0, 0.0980392) 12%, rgba(0, 0, 0, 0.2) 51%), url("themes/bg.jpg"); - background-image: -moz-radial-gradient(50% 150px, circle cover, rgba(200, 125, 0, 0.0980392) 12%, rgba(0, 0, 0, 0.2) 51%), url("themes/bg.jpg"); - background-image: -ms-radial-gradient(50% 150px, circle cover, rgba(200, 125, 0, 0.0980392) 12%, rgba(0, 0, 0, 0.2) 51%), url("themes/bg.jpg"); - background-image: -o-radial-gradient(50% 150px, circle cover, rgba(200, 125, 0, 0.0980392) 12%, rgba(0, 0, 0, 0.2) 51%), url("themes/bg.jpg"); - background-image: radial-gradient(50% 150px, circle cover, rgba(200, 125, 0, 0.0980392) 12%, rgba(0, 0, 0, 0.2) 51%), url("themes/bg.jpg"); - background-repeat: no-repeat, repeat; - background-attachment: fixed; -} - -#imageeditor -{ - background-color:#181818; - background: #101010 url("themes/bg.jpg"); - background-image: -webkit-radial-gradient(50% 150px, circle cover, rgba(200, 125, 0, 0.0980392) 12%, rgba(0, 0, 0, 0.2) 51%), url("themes/bg.jpg"); - background-image: -moz-radial-gradient(50% 150px, circle cover, rgba(200, 125, 0, 0.0980392) 12%, rgba(0, 0, 0, 0.2) 51%), url("themes/bg.jpg"); - background-image: -ms-radial-gradient(50% 150px, circle cover, rgba(200, 125, 0, 0.0980392) 12%, rgba(0, 0, 0, 0.2) 51%), url("themes/bg.jpg"); - background-image: -o-radial-gradient(50% 150px, circle cover, rgba(200, 125, 0, 0.0980392) 12%, rgba(0, 0, 0, 0.2) 51%), url("themes/bg.jpg"); - background-image: radial-gradient(50% 150px, circle cover, rgba(200, 125, 0, 0.0980392) 12%, rgba(0, 0, 0, 0.2) 51%), url("themes/bg.jpg"); - background-repeat: no-repeat, repeat; - background-attachment: fixed; -} - -#artistchooser -{ - border-bottom:1px solid #777777; - border-top:1px solid #777777; - color:#555555; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: rgba(255,255,255,0.1); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -th.tlheader -{ - background-color:#232323; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid #999999; -} - -.infosection h2 -{ - border-bottom:2px solid #eeeeee; -} - -.topbarplaycontrols { - border-left: 1px solid white; - border-right: 1px solid white; -} diff --git a/www/rompr/themes/ElegantGrey.css b/www/rompr/themes/ElegantGrey.css deleted file mode 100644 index d5e7e9b..0000000 --- a/www/rompr/themes/ElegantGrey.css +++ /dev/null @@ -1,484 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -body -{ - -} - -body,p,h1,h2,h3,h4,h5,h6,table,td,th,ul,ol,input -{ - color:#dddddd; -} - -button, input[type="button"], .filebutton -{ - background-color:#000000; - border:none; - color:#dddddd; - font-weight:bold; - font-size:110%; -} - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - background-color:#222222; - color:#ffffff; -} - -select { - color:#dddddd; -} - -select:hover { - color:#ffffff; -} - -.selectholder { - background-color:rgba(200,200,200,0.05); -} - -.selectholder:hover { - background-color:rgba(200,200,200,0.1); -} - -input[type="text"] { - background-color: rgba(200,200,200,0.05); - border-bottom: 1px solid #555555; -} - -input[type="text"]:hover { - background-color: rgba(200,200,200,0.1); - border-bottom: 1px solid #555555; -} - -input[type="text"]:focus { - transition: border-bottom 0.5s ease; - border-bottom: 1px solid #bbbbbb; -} - -a:link { - color:orange; -} - -a:visited { - color:orange; -} - -a:hover,a:active -{ - color:yellow; -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -body.mobile, body.phone .dropmenu { - background-image: linear-gradient(#000000, #444444); -} - -body.desktop #infobar -{ - background-image: linear-gradient(#000000, #050505); -} - -body.desktop #thetopbit -{ - background-image: linear-gradient(#000000, #050505); -} - -body.desktop #headerbar -{ - background-image: linear-gradient(#050505, #0b0b0b); -} - -#bottompage -{ - background-image: linear-gradient(#0b0b0b, #444444); -} - -#pset { - background-color: rgba(150, 150, 150, 0.99); -} -#pmaxset { - background-color: rgba(255, 255, 255, 0.99); -} - -#custombackground -{ - display:none; -} - -#notifications -{ - background-image: linear-gradient(#000000, #050505); -} - -#wikipopup -{ - background-image: linear-gradient(#050505, #0b0b0b); -} - -#imagecontainer -{ - background-image: linear-gradient(#0b0b0b, #444444); -} - -#tagadder -{ - background-image: linear-gradient(#000000, #050505); - border-left:1px solid #666666; - border-bottom:1px solid #000000; - border-right:1px solid #000000; -} - -#dragger -{ - background-color:rgba(255,255,255,0.3); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.bordered -{ - border-left:1px solid #222222; - border-bottom:1px solid #292929; - border-right:1px solid #292929; - border-top:1px solid #222222; -} - -a.album:visited -{ - color:#eeeeee; -} - -a.album:hover,a.album:active -{ - color:#ffffff; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - color:#ffffff; - text-shadow: 0 0 8px #aaaaaa; -} - -.selected -{ - background-color:rgba(255,255,255,0.2); -} - -.playlistcurrentitem -{ - font-size:110%; - text-shadow: 0 0 12px #cccccc; - transition:font-size 0.5s ease, text-shadow 0.5s ease; - color:#dddddd; - background-color:rgba(255,255,255,0.1); -} - -.playlistitem -{ - transition:font-size 0.5s ease, text-shadow 0.5s ease; -} - -.playlistalbum -{ - transition:font-size 0.5s ease, text-shadow 0.5s ease; -} - -.playlistcurrenttitle -{ - font-size:125%; - text-shadow: 0 0 12px #cccccc; - background-color:rgba(255,255,255,0.1); - transition:font-size 0.5s ease, text-shadow 0.5s ease; -} - -.item -{ - border-top:1px solid #444444; -} - -.stleft -{ - border-right:1px solid #aaaaaa; -} - -.popupwindow -{ - background-image: linear-gradient(#101010, #303030); - border-left:1px solid #555555; - border-bottom:1px solid #555555; - border-right:1px solid #555555; - border-top:1px solid #555555; -} - -.backhi:hover { - color:#ffffff; - cursor:pointer; - background-color:rgba(255,255,255,0.1); -} - -table.histable tr:hover { - background-color:rgba(255,255,255,0.1); - cursor:pointer; -} - -.tagholder table tr th -{ - border-bottom:1px solid #cccccc; -} - -tr.clickaddtrack:hover -{ - color:#ffffff; - text-shadow: 0 0 8px #cccccc; -} - -.drop-box -{ - background-image: linear-gradient(#0b0b0b, #444444); - color:#dddddd; -} - -.bsel -{ - color:#ffffff; - text-shadow: 0 0 8px #cccccc; -} - -.bmid -{ - border-left:2px solid #ffffff; -} - -.currentbun -{ - border-bottom:1px solid #ffffff; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.9); -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border-left:1px solid #000000; - border-bottom:1px solid #343434; - border-right:1px solid #343434; - border-top:1px solid #000000; -} - -.mixbox { - background-color:rgba(200,200,200,0.2); -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -.albumbitsmenu -{ - background-image: linear-gradient(#000000, #050505) !important; -} - -div.topdropmenu -{ - background-image: linear-gradient(#0b0b0b, #444444); - border-left:1px solid #262626; - border-bottom:1px solid #000000; - border-right:1px solid #000000; - border-top:none; -} - -.configtitle -{ - background-color:rgba(255,255,255,0.2); -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -.infowiki -{ - background-color:rgba(255,255,255,0.1); -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ - -.helpfulalbum -{ - background-image: linear-gradient(rgba(100,100,100,0.3), rgba(200,200,200,0.2)); -} - -.collectionitem .helpfulalbum.fixed { - background-image: linear-gradient(rgba(200,200,200,0.2), rgba(220,220,220,0.2)); -} - -.tagholder_wide -{ - background-image: linear-gradient(rgba(100,100,100,0.2), rgba(200,200,200,0.1)); -} - -.tagholder_wide .helpfulalbum.tleft -{ - background-image: none; -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem -{ - border-top:1px solid #444444; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -.albumsection -{ - background-image: linear-gradient(#000000, #111111); -} - -.albumcovers -{ - background-image: linear-gradient(#0b0b0b, #444444); -} - -#wobblebottom -{ - background-image: linear-gradient(#0b0b0b, #444444); -} - -#coverslist -{ - box-sizing:border-box; - border-left:1px solid #bbbbbb; -} - -.highlighted { - background-color:rgba(0,0,0,0.6); -} - -#imageeditor -{ - background-color:rgba(0,0,0,0.6); -} - -#artistchooser -{ - border-bottom:1px solid #777777; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: rgba(255,255,255,0.1); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -tr.tagh -{ - font-size:150%; -} - -th.tlheader -{ - /*background-color:#232323;*/ -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid #999999; -} - -.infosection h2 -{ - border-bottom:2px solid #eeeeee; -} - -.ratsoptions { - border-top: 1px solid #444444; -} - -.topbarplaycontrols { - border-left: 1px solid white; - border-right: 1px solid white; -} diff --git a/www/rompr/themes/Fire.css b/www/rompr/themes/Fire.css deleted file mode 100644 index 91fd3e5..0000000 --- a/www/rompr/themes/Fire.css +++ /dev/null @@ -1,444 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -@media screen and (orientation: landscape) { - html, body.phone .dropmenu { - background-image:url("themes/fire.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; - } -} - -@media screen and (orientation: portrait) { - html, body.phone .dropmenu { - background-image:url("themes/fire-portrait.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; - } -} - -body.phone .dropmenu>div { - background-color:rgba(0,0,0,0.3); - background-clip:border-box; -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input -{ - color:#eeeeee; - background-color:rgba(0,0,0,0.3); -} - -a:link -{ - color:yellow; -} - -a:visited -{ - color:yellow; -} - -a:hover,a:active -{ - text-shadow: 0 0 15px #000000; - cursor:pointer; -} - -button, input[type="button"], .filebutton -{ - color:#dddddd; - background-color:transparent; - border:1px solid #aaaaaa; -} - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - color:#ffffff; - border:1px solid #ffffff; - text-shadow: 0 0 15px #ffffff; -} - -input -{ - color:#181818; -} - -input[type="text"] { - color: white; - background-color: rgba(20,20,20,0.5); - border: 1px solid #444; -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#infobar.coloured, #headerbar, #thetopbit -{ - background-color:rgba(0,0,0,0.3); -} - -body.mobile #headerbar { - background-color:rgba(0,0,0,0.6); -} - -#sources, .mainpane, #playlist -{ - background-color:rgba(0,0,0,0.1); -} - -#infopane -{ - background-color:rgba(0,0,0,0.4); -} - -#artistbio -{ - padding:4px; -} - -#notifications -{ - background-color:rgba(0,0,0,0.9); -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -#tagadder -{ - background-color:rgba(0,0,0,0.8); -} - -#dragger -{ - background-color:rgba(0,0,0,0.3); -} - -#pset { - background-color: rgba(147, 61, 24, 0.99); -} - -#pmaxset { - background-color: rgba(255, 238, 95, 0.99); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.selectholder { - background-color: rgba(20,20,20,0.5); -} - -.selectholder:hover { - background-color: rgba(20,20,20,0.5); -} - -select { - color: white; -} - -.drop-box { - background-color: #222; - color:white; -} - -.album2 -{ - background-color:rgba(0,0,0,0.1); -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#ffffff; -} - -.selected -{ - background-color:rgba(255,72,0,0.5); -} - -.playlistcurrentitem -{ - font-weight:bold; - font-size:120%; - color:#eeeeee; - background-color:rgba(200,200,200,0.2); - transition:font-size 0.2s ease, text-shadow 0.2s ease, background-color 0.2s ease; -} - -.playlistitem, .playlistalbum -{ - transition:font-size 0.3s ease, text-shadow 0.3s ease, background-color 0.2s ease; -} - -.playlistcurrenttitle -{ - background-color:rgba(200,200,200,0.2); - text-shadow: 0px 0px 20px #cccccc; - font-weight:bold; - color:#eeeeee; - transition:font-size 0.2s ease, text-shadow 0.2s ease, background-color 0.2s ease; -} - -.inbrowser -{ - color:#000000; -} - -.stleft -{ - border-right:1px solid #888888; -} - -.popupwindow -{ - background-color:rgba(0,0,0,0.8); -} - -table.histable tr:hover { - font-size:105%; - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - transition:all 0.1s; -} - -table.histable tr -{ - transition:all 0.2s; -} - -.backhi:hover { - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - cursor:pointer; - transition:all 0.1s; -} - -.backhi -{ - transition:all 0.2s; -} - -tr.clickaddtrack:hover -{ - background-color:#e1e4ea; -} - -.bsel -{ - color:#ffffff; - text-shadow:0 0 15px #ffffff; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.tagholder table tr th { - background-color:rgba(0,0,0,0.5); - border-bottom:1px solid #000000; -} - - -.currentbun -{ - border-bottom:1px solid #ffffff; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.5); -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border:1px solid #414141; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu -{ - background-color:rgba(0,0,0,0.9); -} - -.configtitle -{ - background-color:rgba(255,128,20,0.2); -} - -body.mobile .configtitle -{ - width:100%; - margin-left:auto; - margin-right:auto; -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -.infowiki -{ - color:white; -} - -.infosection -{ - background-color:rgba(0,0,0,0.5); - background-size:cover; - background-repeat:no-repeat; -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ - -.helpfulalbum -{ - background-color:rgba(0,0,0,0.4); -} - -.tagholder_wide -{ - background-color:rgba(0,0,0,0.6); -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -.albumsection -{ - background-color:rgba(0,0,0,0.5); - background-size:cover; - background-repeat:no-repeat; -} - -.highlighted { - background-color:rgba(90,0,60,0.7) !important; -} - -#coverslist -{ - box-sizing:border-box; - border-left:1px solid #bbbbbb; -} - -#artistchooser -{ - background-color:rgba(0,0,0,0.3); - color:#aaaaaa; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: rgba(0,0,0,0.2); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid yellow; -} - -.infosection h2 -{ - border-bottom:2px solid white; -} diff --git a/www/rompr/themes/Flatworld.css b/www/rompr/themes/Flatworld.css deleted file mode 100644 index 20b4190..0000000 --- a/www/rompr/themes/Flatworld.css +++ /dev/null @@ -1,369 +0,0 @@ -html, body.phone .dropmenu { - background-color:#cccccc; -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input -{ - color:#000000; -} - -h1,h2,h3,h4,h5,h6 -{ - color:#000000; -} - -a:link -{ - color:#0b0080; -} - -a:visited -{ - color:#0b0080; -} - -a:hover,a:active -{ - color:#ff4800; -} - -input -{ - color:#181818; -} - -button, .filebutton -{ - color:#000000; - border: 1px solid #000000; -} - -button:hover, .filebutton:hover -{ - color:#000000; - border: 1px solid white; -} - -select -{ - color:#181818; -} - -#custombackground -{ - display:none; -} - -.selectholder { - background-color:rgba(0,0,0,0); -} - -.selectholder:hover { - background-color:rgba(0,0,0,0); -} - -input[type="text"] { - background-color: rgba(0,0,0,0); - border-bottom: 1px solid #555555; -} - -input[type="text"]:focus { - border-bottom: 1px solid #eeeeee; -} - -.configtitle { - border-bottom: 1px solid #888888; -} - -.drop-box { - background-color: rgba(0,0,0,0.01); -} - -#pset { - background-color: rgba(255, 255, 255, 0.99); -} -#pmaxset { - background-color: rgba(255, 255, 255, 0.99); -} - -#infopane -{ - box-sizing:border-box; - border-left: 2px solid black; - border-right: 2px solid black; - border-top: 2px solid black; -} - -/*-- divs used to create infobar layout --*/ - -#notifications -{ - background-color:#a9a9a9; -} -/*-- divs and classes used in the albums list --*/ - -.album1 -{ - background-color:#cccccc; -} - -.album2 -{ - background-color:#cccccc; -} - -a.album:visited -{ - color:#220000; -} - -a.album:hover,a.album:active -{ - color:#ff4800; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - color:#ff4800; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#dddddd; -} - -.selected -{ - background-color:#CC5500; -} - -/*-- divs and classes used in the playlist --*/ - -.playlistcurrentitem -{ - color:#cc0000; -} - -.playlistcurrenttitle -{ - color:#cc0000; -} - -.inbrowser -{ - color:#000000; -} - -/*-- For Wikipedia and Last.FM pages --*/ - -#wikipopup -{ - background-color:#aaaaaa; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -.translucent -{ - opacity:0.7; -} - -/*-- For Album Cover Art --*/ - -.popupwindow -{ - background-color:#bababa; - border-left:1px solid #eeeeee; - border-bottom:1px solid #9a9a9a; - border-right:1px solid #9a9a9a; - border-top:1px solid #eeeeee; -} - -.underline -{ - border-bottom: 0px none !important; -} - -.info-border-right -{ - border-right: 0px none !important; -} - -.helpfulalbum -{ - border: 1px solid black; -} - -.containerbox .podcast .helpfulalbum.expand -{ - border-bottom: none; -} - -.containerbox .podcast .helpfulalbum.fixed -{ - border-top: none; -} - -.tagholder_wide -{ - border-bottom: 1px solid black; -} - -.tagholder_wide .helpfulalbum.tleft -{ - border: none; -} - -/*-- Styles for drop-down menus --*/ - -div.topdropmenu -{ - background-color:#cccccc; - border-left:1px solid #eeeeee; - border-bottom:1px solid #9a9a9a; - border-right:1px solid #9a9a9a; -} - -/*-- Styles to make the Wikipedia nav boxes look prettier --*/ - -table.navbox th -{ - background-color: #dddddd; -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.crackbaby -{ - border-bottom: 1px solid #444444; -} - -#tagadder -{ - background-color:#bababa; -} - -table.histable tr:hover { - background-color:#CC5500; -} - -.backhi:hover { - background-color:#CC5500; - cursor:pointer; -} - -tr.clickaddtrack:hover -{ - background-color:#cccccc; -} - -#fiddler { - border-left: 4px solid #fe6500; - border-right: 4px solid #fe6500; -} - -.highlighted { - border-top: 4px solid #fe6800 !important; - border-left: 4px solid #fe6800 !important; - border-right: 4px solid #fe6800 !important; - border-bottom: 4px solid #fe6800 !important; - border-radius:2px !important; -} - -.covercontainer.highlighted -{ - border-bottom: none !important; - margin-bottom:-4px; - background-color:#cccccc; -} - -#imageeditor -{ - background-color:#cccccc; -} - -.tagholder table tr th { - border-bottom:1px solid #000000; -} - -.bsel -{ - color:#ff4800; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -#artistchooser -{ - border-bottom:1px solid #777777; - border-top:1px solid #777777; - color:#555555; -} - -.currentbun -{ - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border:1px solid #414141; -} - -.podcastitem -{ - border-top:1px solid #000000; -} - -#dragger -{ - background-color:rgba(0,0,0,0.3); -} diff --git a/www/rompr/themes/Kernsary.css b/www/rompr/themes/Kernsary.css deleted file mode 100644 index 99e2c28..0000000 --- a/www/rompr/themes/Kernsary.css +++ /dev/null @@ -1,416 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -html, body.phone .dropmenu { - background-image:url("themes/kernsary.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; -} - -body.phone .dropmenu>div { - background-color:rgba(0,0,0,0.4); - background-clip:border-box; -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input -{ - color:#eeeeee; -} - -a:link -{ - color:yellow; -} - -a:visited -{ - color:yellow; -} - -a:hover,a:active -{ - text-shadow: 0 0 15px #000000; - cursor:pointer; -} - -button, input[type="button"], .filebutton -{ - color:#dddddd; - background-color:rgba(0,0,0,0.5); - border:1px solid transparent; -} - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - color:#ffffff; - background-color:rgba(0,0,0,0.7); - border:1px solid #222222; -} - -select { - color:#dddddd; -} - -.selectholder { - background-color:rgba(0,0,0,0.3); -} - -.selectholder:hover { - background-color:rgba(0,0,0,0.2); -} - -input[type="text"] { - background-color: rgba(0,0,0,0.3); - border-bottom: 1px solid #555555; -} - -input[type="text"]:hover { - background-color: rgba(0,0,0,0.2); - border-bottom: 1px solid #555555; -} - -input[type="text"]:focus { - transition: border-bottom 0.5s ease; - border-bottom: 1px solid #bbbbbb; -} - -select:hover { - color: #ffffff; -} - -.drop-box { - background-color: rgba(0,0,0,0.4); - color:white; -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#headerbar - { - /*background-color:rgba(0,0,0,0.3);*/ - } - -#playlist -{ - background-color:rgba(0,0,0,0.4); -} - -#notifications -{ - background-color:rgba(60,0,17,0.7); -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -#tagadder -{ - background-color:rgba(60,0,17,0.7); -} - -#dragger -{ - background-color:rgba(60,0,17,0.7); -} - -#pset { - background-color: rgba(79, 71, 93, 0.99); -} -#pmaxset { - background-color: rgba(151, 87, 40, 0.99); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.album2 -{ - background-color:rgba(0,0,0,0.1); -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#ffffff; -} - -.selected -{ - background-color:rgba(255,72,0,0.5); -} - -.playlistcurrentitem -{ - font-weight:bold; - font-size:120%; - color:#eeeeee; - background-color:rgba(200,200,200,0.2); - transition:font-size 0.2s ease, text-shadow 0.2s ease, background-color 0.2s ease; -} - -.playlistitem, .playlistalbum -{ - transition:font-size 0.3s ease, text-shadow 0.3s ease, background-color 0.2s ease; -} - -.playlistcurrenttitle -{ - background-color:rgba(200,200,200,0.2); - text-shadow: 0px 0px 20px #cccccc; - font-weight:bold; - color:#eeeeee; - transition:font-size 0.2s ease, text-shadow 0.2s ease, background-color 0.2s ease; -} - -.stleft -{ - border-right:1px solid #888888; -} - -.popupwindow -{ - background-color:rgba(60,0,17,0.7); -} - -table.histable tr:hover { - font-size:105%; - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - transition:all 0.1s; -} - -table.histable tr -{ - transition:all 0.2s; -} - -.backhi:hover { - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - cursor:pointer; - transition:all 0.1s; -} - -.backhi -{ - transition:all 0.2s; -} - -tr.clickaddtrack:hover -{ - background-color:#e1e4ea; -} - -.bsel -{ - color:#ffffff; - text-shadow:0 0 15px #ffffff; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.tagholder table tr th { - background-color:rgba(0,0,0,0.5); - border-bottom:1px solid #000000; -} - -.currentbun -{ - border-bottom:1px solid #ffffff; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.5); -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border:1px solid #414141; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu -{ - background-color:rgba(53,37,48,0.9); -} - -.configtitle -{ - background-color:rgba(144,91,77,0.5); -} - -body.mobile .configtitle -{ - width:100%; - margin-left:auto; - margin-right:auto; -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -#infopane -{ - background-color:rgba(0,0,0,0.4); -} - -#artistbio -{ - padding:4px; -} - -.infowiki -{ - color:white; -} - -.infosection -{ - background-color:rgba(0,0,0,0.5); - background-size:cover; - background-repeat:no-repeat; -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ - -.helpfulalbum -{ - background-color:rgba(0,0,0,0.4); -} - -.tagholder_wide -{ - background-color:rgba(0,0,0,0.6); -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -.highlighted { - background-color:rgba(60,0,17,0.7) !important; -} - -#artistchooser -{ - background-color:rgba(0,0,0,0.3); - color:#aaaaaa; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: rgba(0,0,0,0.2); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid yellow; -} - -.infosection h2 -{ - border-bottom:2px solid white; -} diff --git a/www/rompr/themes/Leaf.css b/www/rompr/themes/Leaf.css deleted file mode 100644 index c39092d..0000000 --- a/www/rompr/themes/Leaf.css +++ /dev/null @@ -1,414 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -html, body.phone .dropmenu { - background-image:url("themes/leaf.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; -} - -body.phone .dropmenu>div { - background-color:rgba(0,0,0,0.3); - background-clip:border-box; -} - -button, input[type="button"], .filebutton -{ - color:#dddddd; - background-color:transparent; - border:1px solid #aaaaaa; -} - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - color:#ffffff; - border:1px solid #ffffff; - text-shadow: 0 0 15px #ffffff; -} - -input -{ - color:#181818; -} - -input.snapclientname[type=text] { - color: #ffffff; -} - -select -{ - color:#000000; -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#sources, .mainpane, #headerbar, #infobar.coloured, #thetopbit -{ - background-color:rgba(0,0,0,0.3); -} - -#playlist -{ - background-color:rgba(0,0,0,0.3); -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea -{ - color:#eeeeee; -} - -a:link -{ - color:yellow; -} - -a:visited -{ - color:yellow; -} - -a:hover,a:active -{ - text-shadow: 0 0 15px #000000; - cursor:pointer; -} - -#notifications -{ - background-color:rgba(0,0,0,0.9); -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -#tagadder -{ - background-color:rgba(0,0,0,0.9); -} - -#dragger -{ - background-color:rgba(0,0,0,0.5); -} - -#pset { - background-color: rgba(77, 80, 17, 0.99); -} -#pmaxset { - background-color: rgba(136, 142, 30, 0.99); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.album2 -{ - background-color:rgba(0,0,0,0.2); -} - -.item -{ - margin-bottom: 2px; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#ffffff; -} - -.selected -{ - background-color:rgba(255,72,0,0.6); -} - -.playlistcurrentitem -{ - font-weight:bold; - font-size:120%; - border-left:4px solid white; - color:#eeeeee; - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.clicktrack.playlistcurrentitem -{ - padding-left:8px; -} - -.playlistitem, .playlistalbum -{ - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlistcurrenttitle -{ - text-shadow: 0px 0px 20px #cccccc; - font-weight:bold; - color:#eeeeee; - background-color:rgba(0,0,0,0.2); - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlisttitle{ - background-color:rgba(0,0,0,0.2); -} - -.inbrowser -{ - color:#000000; -} - -.stleft -{ - border-right:1px solid #888888; -} - -.popupwindow -{ - background-color:rgba(0,0,0,0.8); -} - -table.histable tr:hover { - font-size:105%; - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - transition:all 0.1s; -} - -table.histable tr -{ - transition:all 0.2s; -} - -.backhi:hover { - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - cursor:pointer; - transition:all 0.1s; -} - -.backhi -{ - transition:all 0.2s; -} - -tr.clickaddtrack:hover -{ - background-color:#e1e4ea; -} - -.bsel -{ - color:#ffffff; - text-shadow:0 0 15px #ffffff; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.tagholder table tr th { - background-color:rgba(0,0,0,0.5); - border-bottom:1px solid #000000; -} - -.currentbun -{ - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.6); -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border:1px solid #414141; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu -{ - background-color:rgba(0,0,0,0.9); -} - -.configtitle -{ - background-color:rgba(20,50,20,1); -} - -body.mobile .configtitle -{ - width:100%; - margin-left:auto; - margin-right:auto; -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -#infopane -{ - background-color:rgba(0,0,0,0.6); -} - -#artistbio -{ - padding:4px; -} - -.infowiki -{ - color:white; -} - -.infosection -{ - background-color:rgba(0,0,0,0.4); - background-size:cover; - background-repeat:no-repeat; -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ - -.helpfulalbum -{ - background-color:rgba(0,0,0,0.4); -} - -.tagholder_wide -{ - background-color:rgba(0,0,0,0.6); -} - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -.albumsection -{ - background-color:rgba(0,0,0,0.4); - background-size:cover; - background-repeat:no-repeat; -} - -.highlighted { - background-color:rgba(0,0,0,0.6); -} - -#artistchooser -{ - background-color:rgba(0,0,0,0.4); - color:#555555; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: rgba(0,0,0,0.2); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid yellow; -} - -.infosection h2 -{ - border-bottom:2px solid white; -} diff --git a/www/rompr/themes/Leaves.css b/www/rompr/themes/Leaves.css deleted file mode 100644 index d22848c..0000000 --- a/www/rompr/themes/Leaves.css +++ /dev/null @@ -1,356 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -html, body.phone .dropmenu { - color:#eeeeee; - background-image:url('themes/leaftile.jpg'); -} - -a:link -{ - color:yellow; -} - -a:visited -{ - color:yellow; -} - -a:hover,a:active -{ - color:#ff4800; -} - -button, .filebutton -{ - color:#eeeeee; - background-image:url('themes/veins.jpg'); - border:none; - box-shadow: 0px 0px 20px rgba(150, 250, 50, 0.4); -} - -button:active, .filebutton:active -{ - box-shadow:none; -} - -button:hover, .filebutton:hover -{ - color:#ff4800; - box-shadow: 0px 0px 20px rgba(150, 250, 50, 1); -} - -input.inbrowser, div.inbrowser -{ - border: 1px solid #888888; -} - -input.snapclientname[type=text] { - color: #ffffff; -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#custombackground -{ - display:none; -} - -#notifications -{ - background-image:url('themes/veins.jpg'); - box-shadow: 4px 4px 12px rgba(150, 250, 50, 0.4); - opacity:0.8; -} - -#wikipopup -{ - background-image:url('themes/leaves2.jpg'); -} - -#imagecontainer -{ - background-color:#ffffff; -} - -#tagadder -{ - background-image:url('themes/leaves2.jpg'); -} - -#dragger -{ - background-color:rgba(0,0,0,0.5); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.bordered -{ - background-color:rgba(250,250,250,0.2); -} - -.album1 -{ - background-color:rgba(250,250,250,0.1); -} - -.album2 -{ - background-color:rgba(250,250,250,0.2); -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - color:#ff4800; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - color:#dddddd; -} - -.selected -{ - background-color:#CC5500; -} - -.playlistcurrentitem -{ - background-color:rgba(250,250,250,0.2); - border-left:2px solid white; - padding-left:2px; -} - -.playlistcurrenttitle -{ - background-color:rgba(250,250,250,0.2); - border-left:2px solid white; - padding-left:2px; -} - -.stleft -{ - border-right:1px solid #aaaaaa; -} - -.popupwindow -{ - background-image:url('themes/leaves2.jpg'); - border-bottom:2px solid #555555; - border-right:2px solid #555555; -} - -table.histable tr:hover { - background-color:#CC5500; -} - -.backhi:hover { - background-color:#CC5500; - cursor:pointer; -} - -tr.clickaddtrack:hover -{ - background-image:url('themes/leaves2.jpg'); -} - -.bsel -{ - color:#ff4800; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.currentbun -{ - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 4px 4px 12px rgba(150, 250, 50, 0.4); -} - -.progressbar -{ - border:1px solid #414141; -} - -.mCSB_draggerRail -{ - background:rgba(0,0,0,0.1) !important; -} - -.mCSB_dragger_bar -{ - background:rgba(0,0,0,0.75) !important; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu -{ - background-image:url('themes/leaves2.jpg'); - border-bottom:1px solid #555555; - border-right:1px solid #555555; - border-top:none; -} - -.configtitle -{ - background-image:url('themes/veins.jpg'); - box-shadow: 0px 0px 8px rgba(250, 520, 250, 0.6); - margin-bottom:8px; -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -.infosection -{ - background-image:url('themes/veins.jpg'); - box-shadow: 0px 0px 12px rgba(150, 250, 50, 0.4); - margin-bottom:8px; -} - -.infowiki -{ - background-image:url('themes/leaves2.jpg'); -} - -.tagholder table tr th { - background-image:url('themes/veins.jpg'); - border-bottom:1px solid #eeeeee; -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem -{ - border-top:1px solid #eeeeee; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -.albumsection -{ - background-image:url('themes/veins.jpg'); - box-shadow: 0px 0px 12px rgba(150, 250, 50, 0.4); -} - -.albumcovers .infosection -{ - background-image:url('themes/leaftile.jpg'); -} - -.highlighted { - background-color: rgba(0,0,0,0.6); -} - -.helpfulalbum -{ - background-color:rgba(0,0,0,0.4); -} - -.tagholder_wide -{ - background-color:rgba(0,0,0,0.3); -} - -#artistchooser -{ - border-bottom:1px solid #555555; - border-top:1px solid #555555; - color:#555555; -} - -#artistcoverslist -{ - background-image:url('themes/leaftile.jpg'); - box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.6); -} - -#coverslist -{ - background-image:url('themes/leaves2.jpg'); -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: #e5e5e5; -} - -.navbox-title -{ - color:#eeeeee; -} - -.navbox-group -{ - color:#eeeeee; -} - -.navbox-abovebelow -{ - color:#eeeeee; - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - color:#990000; - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - color:#990000; - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - color:#ff4800; - text-decoration:none; -} diff --git a/www/rompr/themes/Light.css b/www/rompr/themes/Light.css deleted file mode 100644 index e9788a5..0000000 --- a/www/rompr/themes/Light.css +++ /dev/null @@ -1,369 +0,0 @@ -html, body.phone .dropmenu { - color:#000000; - background-color:#f8f8f8; -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input -{ - color:#000000; -} - -h1,h2,h3,h4,h5,h6 -{ - color:#000000; -} - -a:link -{ - color:#2255cc; -} - -a:visited -{ - color:#2255cc; -} - -a:hover,a:active -{ - color:#ff4800; -} - -input -{ - color:#000000; -} - -button, .filebutton -{ - color:#000000; - border: 1px solid #000000; -} - -#infopane -{ - box-sizing:border-box; - border-left: 2px solid gray; - border-right: 2px solid gray; - border-top: 2px solid gray; -} - -button:hover, .filebutton:hover -{ - color:#ff4800; - text-shadow: 0 0 15px #ff4800; -} - -select -{ - color:#000000; -} - -#custombackground -{ - display:none; -} - -input.inbrowser, div.inbrowser -{ - border: 1px solid #888888; -} - -#headerbar -{ - background-color:#f8f8f8; -} - -#pset { - background-color: rgba(150, 150, 150, 0.99); -} -#pmaxset { - background-color: rgba(180, 180, 180, 0.99); -} - -#notifications -{ - background-color:#e7e7e7; -} - -.tagholder table tr th { - background-color:rgba(0,0,0,0.3); - border-bottom:1px solid #000000; -} - - -/*-- divs used to create infobar layout --*/ - -.bordered -{ - border-left:1px solid #dddddd; - border-bottom:1px solid #ffffff; - border-right:1px solid #ffffff; - border-top:1px solid #dddddd; -} - -/*-- divs and classes used in the albums list --*/ - -.album1 -{ - background-color:#f8f8f8; -} - -.album2 -{ - background-color:#eeeeee; -} - -a.album:visited -{ - color:#000000; -} - -a.album:hover,a.album:active -{ - color:#ff4800; -} - -#filemenu -{ - border-left:1px solid #444444; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - color:#ff4800; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#dddddd; -} - -.selected -{ - background-color:#CC5500; -} - -/*-- divs and classes used in the playlist --*/ - -.playlistcurrentitem -{ - color:#cc0000; -} - -.playlistcurrenttitle -{ - color:#cc0000; -} - -.item -{ - border-top:1px solid #222222; -} - -.inbrowser -{ - color:#000000; -} - -/*-- For Wikipedia and Last.FM pages --*/ - -.stleft -{ - border-right:1px solid #333333; -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -.infosection -{ - background-color:#ededed; -} - -.albumsection -{ - background-color:#d5d5d5; -} - -.translucent -{ - opacity:0.7; -} - -.infowiki -{ - background-color:#f8f8f8; -} - -/*-- For Album Cover Art --*/ - -.crackbaby -{ - background-color:#f8f8f8; -} - -#albumcovers -{ - background-color:#f8f8f8; -} - -.popupwindow -{ - background-color:#dedede; - border-left:2px solid #888888; - border-bottom:2px solid #888888; - border-right:2px solid #888888; - border-top:2px solid #888888; -} - -/*-- Styles for drop-down menus --*/ - -div.topdropmenu -{ - background-color:#e7e7e7; -} - -.configtitle -{ - background-color:#f8f8f8; -} - -/*-- Styles to make the Wikipedia nav boxes look prettier --*/ - -table.navbox th -{ - background-color: #dddddd; -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -#tagadder -{ - background-color:#f8f8f8; -} - -table.histable tr:hover { - background-color:#CC5500; -} - -.backhi:hover { - background-color:#CC5500; - cursor:pointer; -} - -tr.clickaddtrack:hover -{ - background-color:#eeeeee; -} - -.highlighted { - border-top: 4px solid #fe6800 !important; - border-left: 4px solid #fe6800 !important; - border-right: 4px solid #fe6800 !important; - border-bottom: 4px solid #fe6800 !important; - border-radius:2px !important; -} - -.covercontainer.highlighted -{ - border-bottom: none !important; - margin-bottom:-4px; - background-color:#f8f8f8; -} - -#imageeditor -{ - background-color:#f8f8f8; -} - -.bsel -{ - color:#ff4800; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.helpfulalbum -{ - background-color:#f0f0f0; -} - -#artistchooser -{ - border-bottom:1px solid #777777; - border-top:1px solid #777777; - color:#555555; -} - -.currentbun -{ - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.6); -} - -.progressbar -{ - border:1px solid #414141; -} - -.podcastitem -{ - border-top:1px solid #000000; -} - -.mCSB_draggerRail -{ - background:rgba(0,0,0,0.1) !important; -} - -.mCSB_dragger_bar -{ - background:rgba(0,0,0,0.75) !important; -} - -#dragger -{ - background-color:rgba(0,0,0,0.3); -} diff --git a/www/rompr/themes/Mountains.css b/www/rompr/themes/Mountains.css deleted file mode 100644 index e8c5873..0000000 --- a/www/rompr/themes/Mountains.css +++ /dev/null @@ -1,405 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -html, body.phone .dropmenu { - background-image:url("themes/mountains.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input { - color:#eeeeee; -} - -a:link { - color:yellow; -} - -a:visited { - color:yellow; -} - -a.album:visited { - color:#220000; -} - -a.album:hover,a.album:active { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -a:hover,a:active { - text-shadow: 0 0 15px #000000; - cursor:pointer; -} - -button, input[type="button"], .filebutton { - color:#dddddd; - background-color:transparent; - border:1px solid #aaaaaa; -} - -button:hover, input[type="button"]:hover, .filebutton:hover { - color:#ffffff; - border:1px solid #ffffff; - text-shadow: 0 0 15px #ffffff; -} - -select { - color:#dddddd; -} - -.selectholder { - background-color:rgba(0,0,0,0.3); -} - -.selectholder:hover { - background-color:rgba(0,0,0,0.2); -} - -input[type="text"] { - background-color: rgba(0,0,0,0.3); - border-bottom: 1px solid #555555; -} - -input[type="text"]:hover { - background-color: rgba(0,0,0,0.2); - border-bottom: 1px solid #555555; -} - -input[type="text"]:focus { - transition: border-bottom 0.5s ease; - border-bottom: 1px solid #bbbbbb; -} - -select:hover { - color: #ffffff; -} - -.drop-box { - background-color: rgba(0,0,0,0.3); - color:white; -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#sources, #infobar.coloured, #headerbar, #playlist, #thetopbit { - background-color:rgba(0,0,0,0.3); -} - -#infopane { - background-color:rgba(0,0,0,0.4); -} - -#notifications { - background-color:rgba(0,0,0,0.9); -} - -#wikipopup { - background-color:#000000; - opacity:0.75; -} - -#tagadder { - background-color:rgba(0,0,0,0.8); -} - -#artistchooser { - background-color:rgba(0,0,0,0.3); - color:#aaaaaa; -} - -#dragger { - background-color:rgba(0,0,0,0.3); -} - -#pset { - background-color: rgba(61, 47, 49, 0.99); -} -#pmaxset { - background-color: rgba(89, 80, 72, 0.99); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.mainpane { - background-color:rgba(0,0,0,0.2); -} - -.album2 { - background-color:rgba(0,0,0,0.2); -} - -.item { - margin-bottom: 2px; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#ffffff; -} - -.selected { - background-color:rgba(255,72,0,0.5); -} - -.playlistcurrentitem { - font-weight:bold; - font-size:120%; - border-left:4px solid white; - color:#eeeeee; - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.clicktrack.playlistcurrentitem -{ - padding-left:8px; -} - -.playlistitem, .playlistalbum { - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlistcurrenttitle { - text-shadow: 0px 0px 20px #cccccc; - font-weight:bold; - color:#eeeeee; - background-color:rgba(0,0,0,0.1); - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlisttitle { - background-color:rgba(0,0,0,0.1); -} - -.stleft { - border-right:1px solid #888888; -} - -.infosection { - background-color:rgba(0,0,0,0.5); -} - -.popupwindow { - background-color:rgba(0,0,0,0.6); -} - -table.histable tr:hover { - font-size:105%; - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - transition:all 0.1s; -} - -table.histable tr { - transition:all 0.2s; -} - -.backhi:hover { - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - cursor:pointer; - transition:all 0.1s; -} - -.backhi { - transition:all 0.2s; -} - -tr.clickaddtrack:hover { - background-color:#e1e4ea; -} - -.bsel { - color:#ffffff; - text-shadow:0 0 15px #ffffff; -} - -.bmid { - border-left:2px solid #ff4800; -} - -.tagholder table tr th { - background-color:rgba(0,0,0,0.5); - border-bottom:1px solid #000000; -} - -.dropshadow { - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.4); -} - -.progressbar { - border:1px solid #666666; -} - -.progressbar_v { - border:1px solid #666666; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu { - background-color:rgba(74,58,52,0.9); -} - -.configtitle { - background-color:rgba(50,50,50,0.8); -} - -body.mobile .configtitle { - width:95%; - margin-left:auto; - margin-right:auto; -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -#artistbio { - padding:4px; -} - -.infowiki { - color:white; -} - -.currentbun { - border-bottom:1px solid #000000; - padding-bottom:2px; -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ - -.helpfulalbum -{ - background-color:rgba(0,0,0,0.4); -} - -.tagholder_wide -{ - background-color:rgba(0,0,0,0.6); -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -#artistcoverslist { - background-color:rgba(0,0,0,0.5); -} - -.highlighted { - background-color:rgba(0,0,0,0.5) !important; -} - -.albumcovers .infosection { - margin-bottom: 0px; -} - -.albumsection { - background-color:rgba(0,0,0,0.5); - box-sizing:border-box; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: rgba(0,0,0,0.2); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid yellow; -} - -.infosection h2 -{ - border-bottom:2px solid white; -} diff --git a/www/rompr/themes/Negative.css b/www/rompr/themes/Negative.css deleted file mode 100644 index 1e30eee..0000000 --- a/www/rompr/themes/Negative.css +++ /dev/null @@ -1,453 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -body -{ - -} - -body,p,h1,h2,h3,h4,h5,h6,table,td,th,ul,ol -{ - color:#111111; -} - -button, input[type="button"], .filebutton -{ - background-color:#121212; - border:1px solid #333333; - /* background-image:none !important; */ - color:#cccccc; - font-weight:bold; - font-size:110%; -} - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - color:#ffffff; - border:1px solid #666666; - transition: all 0.5s ease; -} - -input -{ - color:#000000; -} - -input[type="submit"] -{ - color: #dddddd; -} - -a:link { - color:yellow; -} - -a:visited { - color:yellow; -} - -a:hover,a:active -{ - color:red; -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -body.mobile, body.phone .dropmenu { - background-image: linear-gradient(#eeeeee, #999999); -} - -body.desktop #infobar -{ - background-image: linear-gradient(#eeeeee, #dddddd); -} - -body.desktop #headerbar -{ - background-image: linear-gradient(#dddddd, #dcdcdc); -} - -body.desktop #thetopbit -{ - background-image: linear-gradient(#eeeeee, #dcdcdc); -} - -#bottompage -{ - background-image: linear-gradient(#dcdcdc, #999999); -} - -#custombackground -{ - display:none; -} - -#notifications -{ - background-image: linear-gradient(#dcdcdc, #999999); -} - -#wikipopup -{ - background-image: linear-gradient(#dcdcdc, #999999); -} - -#imagecontainer -{ - background-image: linear-gradient(#dcdcdc, #999999); -} - -#tagadder -{ - background-image: linear-gradient(#dcdcdc, #999999); - border-left:1px solid #ffffff; - border-bottom:1px solid #000000; - border-right:1px solid #000000; -} - -#dragger -{ - background-color:rgba(0,0,0,0.3); -} - -#pset { - background-color: rgba(150, 150, 150, 0.99); -} -#pmaxset { - background-color: rgba(255, 255, 255, 0.99); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.bordered -{ - border-left:1px solid #bbbbbb; - border-bottom:1px solid #eeeeee; - border-right:1px solid #eeeeee; - border-top:1px solid #bbbbbb; -} - -.album1 -{ - /*background-color:rgba(200,200,200,0.1);*/ -} - -.album2 -{ - /*background-color:rgba(200,200,200,0.2);*/ -} - -a.album:visited -{ - color:#222222; -} - -a.album:hover,a.album:active -{ - color:#333333; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 8px #ffffff; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - text-shadow: 0 0 8px #ffffff; -} - -.selected -{ - background-color:rgba(0,0,0,0.5); -} - -.playlistcurrentitem -{ - font-size:110%; - transition:font-size 0.5s ease, text-shadow 0.5s ease; - background-color:rgba(0,0,0,0.1); -} - -.playlistitem, .playlistalbum -{ - transition:font-size 0.5s ease, text-shadow 0.5s ease; -} - -.playlistcurrenttitle -{ - font-size:125% - background-color:rgba(0,0,0,0.1); - transition:font-size 0.5s ease, text-shadow 0.5s ease; -} - -.item -{ - border-top:1px solid #222222; -} - -.inbrowser -{ - color:#000000; -} - -.stleft -{ - border-right:1px solid #444444; -} - -.popupwindow -{ - background-image: linear-gradient(#dcdcdc, #999999); - border-left:1px solid #eeeeee; - border-bottom:1px solid #bbbbbb; - border-right:1px solid #bbbbbb; - border-top:1px solid #eeeeee; -} - -.backhi:hover { - color:#444444; - cursor:pointer; -} - -table.histable tr:hover { - background-color:rgba(0,0,0,0.1); - cursor:pointer; -} - -.tagholder table tr th -{ - border-bottom:1px solid #cccccc; -} - -tr.clickaddtrack:hover -{ - text-shadow: 0 0 8px #333333; -} - -.bsel -{ - text-shadow: 0 0 8px #333333; -} - -.bmid -{ - border-left:2px solid #222222; -} - -.currentbun -{ - border-bottom:1px solid #222222; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.9); -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border-left:1px solid #bbbbbb; - border-bottom:1px solid #eeeeee; - border-right:1px solid #eeeeee; - border-top:1px solid #bbbbbb; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu -{ - background-image: linear-gradient(#dcdcdc, #999999); - border-left:1px solid #eeeeee; - border-bottom:1px solid #bbbbbb; - border-right:1px solid #bbbbbb; - border-top:none; -} - -.configtitle -{ - background-image: linear-gradient(#dcdcdc, #999999); -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -.infowiki -{ - background-color:rgba(0,0,0,0.1); -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ - -.helpfulalbum -{ - background-image: linear-gradient(#dcdcdc, #999999); -} - -.collectionitem .helpfulalbum.fixed { - background-image: linear-gradient(#999999, #878787); -} - -.tagholder_wide -{ - background-image: linear-gradient(#dcdcdc, #999999); -} - -.tagholder_wide .helpfulalbum.tleft -{ - background-image: none; -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -.albumsection -{ - background-image: linear-gradient(#dcdcdc, #999999); -} - -.albumcovers -{ - background-image: linear-gradient(#dcdcdc, #999999); -} - -#wobblebottom -{ - background-image: linear-gradient(#dcdcdc, #999999); -} - -#coverslist -{ - box-sizing:border-box; - border-left:1px solid #bbbbbb; -} - -.highlighted { - background-color:rgba(0,0,0,0.6); -} - -#imageeditor -{ - background-color:rgba(0,0,0,0.6); -} - -#artistchooser -{ - border-bottom:1px solid #777777; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: rgba(255,255,255,0.1); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -tr.tagh -{ - font-size:150%; -} - -th.tlheader -{ - /*background-color:#232323;*/ -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid #999999; -} - -.infosection h2 -{ - border-bottom:2px solid #eeeeee; -} - -.topbarplaycontrols { - border-left: 1px solid black; - border-right: 1px solid black; -} diff --git a/www/rompr/themes/NightClouds.css b/www/rompr/themes/NightClouds.css deleted file mode 100644 index 14de8ee..0000000 --- a/www/rompr/themes/NightClouds.css +++ /dev/null @@ -1,415 +0,0 @@ -html, body.phone .dropmenu { - background-image:url("themes/nightclouds.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; -} - -body.phone .dropmenu>div { - background-color:rgba(0,0,0,0.2); - background-clip:border-box; -} - -#sources, .mainpane -{ - background-color:rgba(0,0,0,0.2); -} - -.album2 -{ - background-color:rgba(0,0,0,0.2); -} - -#playlist -{ - background-color:rgba(0,0,0,0.2); -} - -#infopane -{ - background-color:rgba(0,0,0,0.4); -} - -.helpfulalbum -{ - background-color:rgba(0,0,0,0.4); -} - -.tagholder_wide -{ - background-color:rgba(0,0,0,0.6); -} - -#artistbio -{ - padding:4px; -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input -{ - color:#eeeeee; -} - -a:link -{ - color:yellow; -} - -a:visited -{ - color:yellow; -} - -a:hover,a:active -{ - text-shadow: 0 0 15px #000000; - cursor:pointer; -} - -.infowiki -{ - color:white; -} - -.item -{ - margin-bottom: 2px; -} - -/*-- divs used to create infobar layout --*/ - -button, input[type="button"], .filebutton -{ - color:#dddddd; - background-color:transparent; - border:1px solid #aaaaaa; -} - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - color:#ffffff; - border:1px solid #ffffff; - text-shadow: 0 0 15px #ffffff; -} - -select { - color:#dddddd; -} - -.selectholder { - background-color:rgba(200,200,200,0.15); -} - -.selectholder:hover { - background-color:rgba(200,200,200,0.2); -} - -input[type="text"] { - background-color: rgba(200,200,200,0.15); - border-bottom: 1px solid #555555; -} - -input[type="text"]:hover { - background-color: rgba(200,200,200,0.2); - border-bottom: 1px solid #555555; -} - -input[type="text"]:focus { - transition: border-bottom 0.5s ease; - border-bottom: 1px solid #bbbbbb; -} - -select:hover { - color: #ffffff; -} - -.drop-box { - background-color: rgba(200,200,200,0.3); - color:white; -} - -#notifications -{ - background-color:rgba(0,0,0,0.9); -} - -a.album:visited -{ - color:#220000; -} - -a.album:hover,a.album:active -{ - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -#filemenu -{ - border-left:1px solid white; -} - -#pset { - background-color: rgba(73, 47, 24, 0.99); -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#ffffff; -} - -.selected -{ - background-color:rgba(255,72,0,0.6); -} - -/*-- divs and classes used in the playlist --*/ - -.playlistcurrentitem -{ - font-weight:bold; - font-size:120%; - border-left:4px solid white; - color:#eeeeee; - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.clicktrack.playlistcurrentitem -{ - padding-left:8px; -} - -.playlistitem, .playlistalbum -{ - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlistcurrenttitle -{ - text-shadow: 0px 0px 20px #cccccc; - font-weight:bold; - color:#eeeeee; - background-color:rgba(0,0,0,0.2); - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlisttitle{ - background-color:rgba(0,0,0,0.2); -} - -/*-- For Wikipedia and Last.FM pages --*/ - -.stleft -{ - border-right:1px solid #888888; -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -.infosection -{ - background-color:rgba(0,0,0,0.4); - background-size:cover; - background-repeat:no-repeat; -} - -.translucent -{ - opacity:0.7; -} - -/*-- For Album Cover Art --*/ - -.crackbaby -{ - background-color:rgba(0,0,0,0.4); - box-sizing:border-box; - background-size:cover; - background-repeat:no-repeat; -} - -.popupwindow -{ - background-color:rgba(0,0,0,0.8); -} - -/*-- Styles for drop-down menus --*/ - -div.topdropmenu -{ - background-color:rgba(0,0,0,0.9); -} - -.configtitle -{ - background-color:rgba(200,80,0,0.4); -} - -body.mobile .configtitle -{ - width:100%; - margin-left:auto; - margin-right:auto; -} - -/*-- Styles to make the Wikipedia nav boxes look prettier --*/ - -table.navbox th -{ - background-color: rgba(0,0,0,0.2); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid yellow; -} - -.infosection h2 -{ - border-bottom:2px solid white; -} - -#tagadder -{ - background-color:rgba(0,0,0,0.9); -} - -table.histable tr:hover { - font-size:105%; - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - transition:all 0.1s; -} - -table.histable tr -{ - transition:all 0.2s; -} - -.backhi:hover { - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - cursor:pointer; - transition:all 0.1s; -} - -.backhi -{ - transition:all 0.2s; -} - -tr.clickaddtrack:hover -{ - background-color:#e1e4ea; -} - -.bsel -{ - color:#ffffff; - text-shadow:0 0 15px #ffffff; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.highlighted { - background-color:rgba(180,120,0,0.8); -} - -.tagholder table tr th { - background-color:rgba(0,0,0,0.5); - border-bottom:1px solid #000000; -} - -#artistchooser -{ - background-color:rgba(0,0,0,0.4); - color:#555555; -} - -.currentbun -{ - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.6); -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border:1px solid #414141; -} - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -#dragger -{ - background-color:rgba(0,0,0,0.5); -} diff --git a/www/rompr/themes/Numismatist.css b/www/rompr/themes/Numismatist.css deleted file mode 100644 index 46d0c20..0000000 --- a/www/rompr/themes/Numismatist.css +++ /dev/null @@ -1,507 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -body -{ - -} - -body,p,h1,h2,h3,h4,h5,h6,table,td,th,ul,ol,input,select -{ - color:#111111; -} - -body.phone .dropmenu>div.playable, -body.phone .dropmenu>div.menuitem, -body.phone .mainpane .radio, -body.phone .mainpane .faveradio, -body.phone .mainpane .podcast:not(.podicon):not(.podglobal), -body.phone .mainpane .directory { - border-top: 1px solid rgba(60,60,60,0.4); -} - -body.phone #pluginplaylistholder .menuitem.clickicon, -body.phone #pluginplaylistholder .menuitem.containerbox.fullwidth { - border-bottom: 1px solid rgba(60,60,60,0.4); -} - -button, input[type="button"], .filebutton -{ - background-color:#dddddd; - border:none; - color:#444444; - font-weight:normal; - font-size:110%; -} - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - color:black; - background-color:#eeeeee; -} - -input[type="submit"] -{ - color: #dddddd; -} - -a:link { - color:#0b0080; -} - -a:visited { - color:#0b0080; -} - -a:hover,a:active { - color:#ff4800; -} - -.selectholder { - background-color:rgba(0,0,0,0.05); -} - -.selectholder:hover { - background-color:rgba(0,0,0,0.03); -} - -input[type="text"] { - background-color: rgba(0,0,0,0.05); -} - -input[type="text"]:hover, input.snapclientname[type="text"]:hover { - background-color: rgba(0,0,0,0.03) !important; -} - -input[type="text"]:focus { - transition: border-bottom 0.5s ease; - border-bottom: 1px solid #bbbbbb; -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -body.mobile, body.phone .dropmenu { - background-image: linear-gradient(#ffffff, #bbbbbb); -} - -.album2 { - background-color:rgba(0,0,0,0.1); -} - -.setupdiv -{ - background-image: linear-gradient(#ffffff, #bbbbbb); -} - -body.setup -{ - background-color: #dddddd; -} - -body.desktop #infobar -{ - background-image: linear-gradient(#ffffff, #eeeeee); -} - -body.desktop #headerbar -{ - background-image: linear-gradient(#eeeeee, #ededed); -} - -body.desktop #thetopbit -{ - background-image: linear-gradient(#ffffff, #ededed); -} - -#bottompage -{ - background-image: linear-gradient(#ededed, #bbbbbb); -} - -#pset { - background-color: rgba(1, 1, 1, 0.75); -} -#pmaxset { - background-color: rgba(150, 150, 150, 0.75); -} -#pbgset { - background-color: rgba(1, 1, 1, 0); -} - -#custombackground -{ - display:none; -} - -#notifications -{ - background-image: linear-gradient(#ededed, #cccccc); -} - -#wikipopup -{ - background-image: linear-gradient(#ededed, #cccccc); -} - -#imagecontainer -{ - background-image: linear-gradient(#ededed, #cccccc); -} - -#tagadder -{ - background-image: linear-gradient(#ededed, #cccccc); - border-left:1px solid #ffffff; - border-bottom:1px solid #000000; - border-right:1px solid #000000; -} - -#dragger -{ - background-color:rgba(0,0,0,0.3); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.bordered -{ - border-left:1px solid #bbbbbb; - border-bottom:1px solid #ffffff; - border-right:1px solid #ffffff; - border-top:1px solid #bbbbbb; -} - -.album1 -{ - /*background-color:rgba(200,200,200,0.1);*/ -} - -.album2 -{ - /*background-color:rgba(200,200,200,0.2);*/ -} - -a.album:visited -{ - color:#222222; -} - -a.album:hover,a.album:active -{ - color:#333333; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 10px #ffffff; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - background-color:rgba(0,0,0,0.1); -} - -div.playable.selected:hover -{ - text-shadow: 0 0 12px #333333; -} - -.selected -{ - background-color:rgba(0,0,0,0.4) !important; -} - -.playlistcurrentitem -{ - font-size:120%; - transition:font-size 0.5s ease, text-shadow 0.5s ease; -} - -.playlistitem, .playlistalbum -{ - transition:font-size 0.5s ease, text-shadow 0.5s ease; -} - -.playlistcurrenttitle -{ - font-size:125% - transition:font-size 0.5s ease, text-shadow 0.5s ease; -} - -.item -{ - border-top:1px solid #222222; -} - -.stleft -{ - border-right:1px solid #444444; -} - -.popupwindow -{ - background-image: linear-gradient(#ededed, #bbbbbb); - border-left:1px solid #eeeeee; - border-bottom:1px solid #bbbbbb; - border-right:1px solid #bbbbbb; - border-top:1px solid #eeeeee; -} - -.backhi:hover { - color:#444444; - cursor:pointer; -} - -table.histable tr:hover { - background-color:rgba(0,0,0,0.1); - cursor:pointer; -} - -.tagholder table tr th -{ - border-bottom:1px solid #222222; -} - -tr.clickaddtrack:hover -{ - text-shadow: 0 0 8px #333333; -} - -.drop-box -{ - background-color: rgba(0,0,0,0.05); -} - -.bsel -{ - text-decoration: underline; -} - -.bmid -{ - border-left:2px solid #222222; -} - -.currentbun -{ - border-bottom:1px solid #222222; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.9); -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border-left:1px solid #bbbbbb; - border-bottom:1px solid #eeeeee; - border-right:1px solid #eeeeee; - border-top:1px solid #bbbbbb; -} - -.textunderline -{ - border-bottom: 1px solid #222222; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu -{ - background-image: linear-gradient(#ededed, #bbbbbb); - border-left:1px solid #eeeeee; - border-bottom:1px solid #bbbbbb; - border-right:1px solid #bbbbbb; - border-top:none; -} - -.configtitle -{ - border-bottom:1px solid #111111; - background-color: rgba(255,255,255,0.2); -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -.infowiki -{ - background-color:#dedede; -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ - -.helpfulalbum -{ - background-image: linear-gradient(#ededed, #bbbbbb); -} - -.collectionitem .helpfulalbum.fixed { - background-image: linear-gradient(#bbbbbb, #aaaaaa); -} - -.tagholder_wide -{ - background-image: linear-gradient(#ededed, #bbbbbb); -} - -.tagholder_wide .helpfulalbum.tleft -{ - background-image: none; -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -.albumsection -{ - border-top:1px solid #999999; - margin-top:8px; -} - -.albumcovers -{ - background-image: linear-gradient(#ededed, #bbbbbb); -} - -#wobblebottom -{ - background-image: linear-gradient(#ededed, #bbbbbb); -} - -#coverslist -{ - box-sizing:border-box; - border-left:1px solid #bbbbbb; -} - -.highlighted { - background-color:rgba(255,255,255,0.7); -} - -#imageeditor -{ - background-color:rgba(255,255,255,0.7); -} - -#artistchooser -{ - border-bottom:1px solid #777777; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: rgba(255,255,255,0.1); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -tr.tagh -{ - font-size:150%; -} - -th.tlheader -{ - /*background-color:#232323;*/ -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid #222222; -} - -.infosection h2 -{ - border-bottom:2px solid #222222; -} - -.topbarplaycontrols { - border-left: 1px solid black; - border-right: 1px solid black; -} diff --git a/www/rompr/themes/Oxygen.css b/www/rompr/themes/Oxygen.css deleted file mode 100644 index 6157449..0000000 --- a/www/rompr/themes/Oxygen.css +++ /dev/null @@ -1,414 +0,0 @@ -html, body.phone .dropmenu { - background-color:#cccccc; -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input -{ - color:#000000; -} - -h1,h2,h3,h4,h5,h6 -{ - color:#000000; -} - -a:link -{ - color:#0b0080; -} - -a:visited -{ - color:#0b0080; -} - -a:hover,a:active -{ - color:#ff4800; -} - -input -{ - color:#181818; -} - -button, .filebutton -{ - color:#000000; - border: 1px solid #000000; -} - -button:hover, .filebutton:hover -{ - color:#ff4800; - text-shadow: 0 0 15px #ff4800; -} - -select -{ - color:#181818; -} - -input.inbrowser, div.inbrowser -{ - border: 1px solid #888888; -} - -#infobar.coloured, #thetopbit -{ - background-image: linear-gradient(#dfdfdf, #b9b9b9); -} - -#headerbar -{ - background-image: linear-gradient(#b9b9b9, #b4b4b4); -} - -#custombackground -{ - display:none; -} - -#infopane -{ - border-top:1px solid #000000; -} - -#sources -{ - border-top:1px solid #000000; -} - -#playlist -{ - background-image: linear-gradient(#b4b4b4, #aeaeae); -} - -/*-- divs used to create infobar layout --*/ - -.bordered -{ - border-left:1px solid #9a9a9a; - border-bottom:1px solid #efefef; - border-right:1px solid #efefef; - border-top:1px solid #9a9a9a; -} - -#notifications -{ - background-color:#a9a9a9; -} -/*-- divs and classes used in the albums list --*/ - -.album1 -{ - background-color:#c4c4c4; -} - -.album2 -{ - background-color:#cccccc; -} - -.textunderline { - border-bottom: 1px solid #222222; -} - -a.album:visited -{ - color:#220000; -} - -a.album:hover,a.album:active -{ - color:#ff4800; -} - -#filemenu -{ - border-left:1px solid #444444; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - color:#ff4800; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#dddddd; -} - -.selected -{ - background-color:#CC5500; -} - -/*-- divs and classes used in the playlist --*/ - -.playlistcurrentitem -{ - color:#cc0000; -} - -.playlistcurrenttitle -{ - color:#cc0000; -} - -.item -{ - border-top:1px solid #999999; -} - -.inbrowser -{ - color:#000000; -} - -/*-- For Wikipedia and Last.FM pages --*/ - -.stleft -{ - border-right:1px solid #888888; -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -.infosection -{ - background-image: linear-gradient(#dfdfdf, #b9b9b9); -} - -.albumsection -{ - background-color:#bbbbbb; -} - -.translucent -{ - opacity:0.7; -} - -.infowiki -{ - background-color:#eaeaea; -} - -/*-- For Album Cover Art --*/ - -.crackbaby -{ - background-image: linear-gradient(#dfdfdf, #b9b9b9); -} - -#albumcovers -{ - background-color:#bbbbbb; -} - -.popupwindow -{ - background-color:#bababa; - border-left:1px solid #eeeeee; - border-bottom:1px solid #9a9a9a; - border-right:1px solid #9a9a9a; - border-top:1px solid #eeeeee; -} - - -/*-- Styles for drop-down menus --*/ - -div.topdropmenu -{ - background-image: linear-gradient(#b9b9b9, #b4b4b4); - border-left:1px solid #eeeeee; - border-bottom:1px solid #9a9a9a; - border-right:1px solid #9a9a9a; -} - -.configtitle -{ - background-image: linear-gradient(#dfdfdf, #b4b4b4); -} - -/*-- Styles to make the Wikipedia nav boxes look prettier --*/ - -table.navbox th -{ - background-color: #dddddd; -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid #444444; -} - -.infosection h2 -{ - border-bottom:2px solid #444444; -} - -#tagadder -{ - background-color:#bababa; -} - -table.histable tr:hover { - background-color:#CC5500; -} - -.backhi:hover { - background-color:#CC5500; - cursor:pointer; -} - -tr.clickaddtrack:hover -{ - background-color:#cccccc; -} - -.highlighted { - border-top: 4px solid #fe6800 !important; - border-left: 4px solid #fe6800 !important; - border-right: 4px solid #fe6800 !important; - border-bottom: 4px solid #fe6800 !important; - border-radius:2px !important; -} - -.covercontainer.highlighted -{ - border-bottom: none !important; - margin-bottom:-4px; - background-color:#cccccc; -} - -#imageeditor -{ - background-color:#cccccc; -} - -.tagholder table tr th { - background-color:rgba(0,0,0,0.5); - border-bottom:1px solid #000000; - color:#ffffff; -} - -.bsel -{ - color:#ff4800; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.helpfulalbum -{ - background-color:#dddddd; -} - -.tagholder_wide -{ - background-color:#cccccc; -} - -.tagholder_wide .helpfulalbum.tleft -{ - background-color:transparent; -} - -#artistchooser -{ - border-bottom:1px solid #777777; - border-top:1px solid #777777; - color:#555555; -} - -.currentbun -{ - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.6); -} - -.progressbar -{ - border:1px solid #414141; -} - -.podcastitem -{ - border-top:1px solid #000000; -} - -.mCSB_draggerRail -{ - background:rgba(0,0,0,0.1) !important; -} - -.mCSB_dragger_bar -{ - background:rgba(0,0,0,0.75) !important; -} - -#dragger -{ - background-color:rgba(0,0,0,0.3); -} - -.topbarplaycontrols { - border-left: 1px solid black; - border-right: 1px solid black; -} diff --git a/www/rompr/themes/Paper.css b/www/rompr/themes/Paper.css deleted file mode 100644 index c972293..0000000 --- a/www/rompr/themes/Paper.css +++ /dev/null @@ -1,360 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -html, body.phone .dropmenu { - color:#000000; - background-image:url('themes/Paper1.jpg'); -} - -h1,h2,h3,h4,h5,h6 { - color:#000000; -} - -a:link { - color:#12569a; -} - -a:visited { - color:#12569a; -} - -a:hover,a:active { - color:#ff4800; -} - -button, .filebutton { - color:#000000; - background-color:transparent; - border:none; - box-shadow: 3px 3px 2px rgba(50, 50, 50, 0.8); - font-weight:bold; -} - -button:active, .filebutton:active { - box-shadow:none; -} - -button:hover, .filebutton:hover { - color:#ff4800; - background-color: rgba(255, 72, 0, 0.1); -} - -input.inbrowser, div.inbrowser { - border: 1px solid #888888; -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#custombackground { - display:none; -} - -#buttonholder { - box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.6); -} - -#patrickmoore { - box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.6); -} - -#infopane { - box-sizing:border-box; - border-left: 2px solid black; - border-right: 2px solid white; - border-top: 2px solid black; -} - -#notifications { - background-image:url('themes/oldpaper.jpg'); - box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.6); - opacity:0.8; -} - -#wikipopup { - background-image:url('themes/oldpaper.jpg'); -} - -#tagadder { - background-image:url('themes/oldpaper.jpg'); -} - -#dragger { - background-color:rgba(0,0,0,0.5); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.bordered { - border-top:1px solid #dddddd; - border-left:1px solid #dddddd; -} - -.album1 { - background-color:rgba(150,150,150,0.1); -} - -.album2 { - background-color:rgba(150,150,150,0.2); -} - -.playable:not(.selected):hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:not(.selected):hover>td { - background-color:rgba(220,220,220,0.7); -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#dddddd; -} - -.selected { - background-color:#CC5500; -} - -.playlistcurrentitem { - color:#cc0000; -} - -.playlistcurrenttitle { - color:#cc0000; -} - -.stleft { - border-right:1px solid #aaaaaa; -} - -.popupwindow { - background-image:url('themes/vellum-seamless-repeating-white.jpg'); - border-top:1px solid #dddddd; - border-left:1px solid #dddddd; -} - -table.histable tr:hover { - background-color:#CC5500; -} - -.backhi:hover { - background-color:#CC5500; - cursor:pointer; -} - -tr.clickaddtrack:hover { - background-image:url('themes/oldpaper.jpg'); -} - -.tagholder table tr th { - background-image:url('themes/oldpaper.jpg'); - border-bottom:1px solid #000000; -} - -.bsel { - color:#ff4800; -} - -.bmid { - border-left:2px solid #ff4800; -} - -.currentbun { - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow { - box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.6); -} - -.progressbar { - border:1px solid #414141; -} - -.mCSB_draggerRail { - background:rgba(0,0,0,0.1) !important; -} - -.mCSB_dragger_bar { - background:rgba(0,0,0,0.75) !important; -} - -.textunderline { - border-bottom: 1px solid #222222; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu { - background-image:url('themes/oldpaper.jpg'); - border-bottom:1px solid #555555; - border-right:1px solid #555555; - border-top:none; -} - -.configtitle { - background-image:url('themes/tanpaper.jpg'); - box-shadow: 3px 3px 2px rgba(50, 50, 50, 0.5); - margin-bottom:8px; -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -.infosection { - background-image:url('themes/tanpaper.jpg'); - box-shadow: 3px 3px 2px rgba(50, 50, 50, 0.5); - margin-bottom:8px; -} - -.albumcovers .infosection { - background-image:url('themes/Paper1.jpg'); -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ - -.tagholder_wide -{ - background-color:rgba(0,0,0,0.2); -} - -.helpfulalbum -{ - background-color:rgba(0,0,0,0.3); -} - -.tagholder_wide .helpfulalbum.tleft -{ - background-color:transparent; -} -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem -{ - border-top:1px solid #000000; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -.albumsection { - background-image:url('themes/oldpaper.jpg'); - box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.6); -} - -.infowiki { - background-image:url('themes/vellum-seamless-repeating-white.jpg'); -} - -.highlighted { - border-top: 4px solid #fe6800 !important; - border-left: 4px solid #fe6800 !important; - border-right: 4px solid #fe6800 !important; - border-bottom: 4px solid #fe6800 !important; - border-radius:2px !important; -} - -.covercontainer.highlighted -{ - border-bottom: none !important; - margin-bottom:-4px; - background-image:url('themes/Paper1.jpg'); -} - -#imageeditor { - background-image:url('themes/Paper1.jpg'); -} - - - -#artistchooser { - border-bottom:1px solid #555555; - border-top:1px solid #555555; - color:#555555; -} - -#artistcoverslist { - background-image:url('themes/Paper1.jpg'); - box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.6); -} - -#coverslist { - background-image:url('themes/vellum-seamless-repeating-white.jpg'); - box-sizing:border-box; - border-left:2px solid black; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: #e5e5e5; -} - -.navbox-title -{ - color:#000000; -} - -.navbox-group -{ - color:#000000; -} - -.navbox-abovebelow -{ - color:#000000; - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - color:#990000; - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - color:#990000; - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - color:#ff4800; - text-decoration:none; -} diff --git a/www/rompr/themes/Paper1.jpg b/www/rompr/themes/Paper1.jpg deleted file mode 100644 index c5d0363..0000000 Binary files a/www/rompr/themes/Paper1.jpg and /dev/null differ diff --git a/www/rompr/themes/Plasma.css b/www/rompr/themes/Plasma.css deleted file mode 100644 index aa4a3aa..0000000 --- a/www/rompr/themes/Plasma.css +++ /dev/null @@ -1,431 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ -@media screen and (orientation: landscape) { - html, body.phone .dropmenu { - background-image:url("themes/plasma.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; - } -} - -@media screen and (orientation: portrait) { - html, body.phone .dropmenu { - background-image:url("themes/plasma_portrait.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; - } -} - -body.phone .dropmenu>div { - background-color:rgba(0,0,0,0.2); - background-clip:border-box; -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input -{ - color:#cccccc; -} - -a:link -{ - color:yellow; -} - -a:visited -{ - color:yellow; -} - -a:hover,a:active -{ - text-shadow: 0 0 15px #000000; - cursor:pointer; -} - -button, input[type="button"], .filebutton -{ color:#dddddd; - background-color:rgba(0,0,0,0.5); - border:1px solid transparent; -} - - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - color:#ffffff; - background-color:rgba(0,0,0,0.7); - border:1px solid #444444; -} - -select { - color:#dddddd; -} - -.selectholder { - background-color:rgba(0,0,0,0.5); -} - -.selectholder:hover { - background-color:rgba(0,0,0,0.2); -} - -input[type="text"] { - background-color: rgba(0,0,0,0.5); - border-bottom: 1px solid #555555; -} - -input[type="text"]:hover { - background-color: rgba(0,0,0,0.2); - border-bottom: 1px solid #555555; -} - -input[type="text"]:focus { - transition: border-bottom 0.5s ease; - border-bottom: 1px solid #bbbbbb; -} - -select:hover { - color: #ffffff; -} - -.drop-box { - background-color:rgba(100,0,80,0.6); - color:white; -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#sources, .mainpane, #headerbar, #infobar.coloured, #thetopbit -{ - background-color:rgba(0,0,0,0.2); -} - -body.mobile #headerbar { - background-color:rgba(0,0,0,0.6); -} - -#playlist -{ - background-color:rgba(0,0,0,0.2); -} - -#infopane -{ - background-color:rgba(0,0,0,0.4); -} - -#artistbio -{ - padding:4px; -} - -#notifications -{ - background-color:rgba(0,0,0,0.9); -} - -#wikipopup -{ - background-color:#000000; -} - -#tagadder -{ - background-color:rgba(0,0,0,0.9); -} - -#dragger -{ - background-color:rgba(0,0,0,0.5); -} - -#imagecontainer -{ - background-color:#ffffff; -} - -#pset { - background-color: rgba(186, 62, 145, 0.99); -} -#pmaxset { - background-color: rgba(202, 145, 190, 0.99); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.album2 -{ - background-color:rgba(0,0,0,0.2); -} - -.item -{ - margin-bottom: 2px; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#ffffff; -} - -.selected -{ - background-color:rgba(255,72,0,0.6); -} - -.playlistcurrentitem -{ - font-weight:bold; - font-size:120%; - border-left:4px solid white; - color:#eeeeee; - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.clicktrack.playlistcurrentitem -{ - padding-left:8px; -} - -.playlistitem -{ - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlistcurrenttitle -{ - text-shadow: 0px 0px 20px #cccccc; - font-weight:bold; - color:#eeeeee; - background-color:rgba(0,0,0,0.2); -} - -.playlisttitle { - background-color:rgba(0,0,0,0.2); -} - -.stleft -{ - border-right:1px solid #888888; -} - -.popupwindow -{ - background-color:rgba(0,0,0,0.8); -} - -table.histable tr:hover { - font-size:105%; - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - transition:all 0.1s; -} - -table.histable tr -{ - transition:all 0.2s; -} - -.backhi:hover { - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - cursor:pointer; - transition:all 0.1s; -} - -.backhi -{ - transition:all 0.2s; -} - -tr.clickaddtrack:hover -{ - background-color:#e1e4ea; -} - -.bsel -{ - color:#ffffff; - text-shadow:0 0 15px #ffffff; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.currentbun -{ - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.6); -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border:1px solid #414141; -} - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu -{ - background-color:rgba(30,0,5,0.9); -} - -.configtitle -{ - background-color:rgba(100,0,80,0.8); -} - -body.mobile .configtitle -{ - width:100%; - margin-left:auto; - margin-right:auto; -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -.infowiki -{ - color:white; -} - -.infosection -{ - background-color:rgba(0,0,0,0.4); - background-size:cover; - background-repeat:no-repeat; -} - -.tagholder table tr th { - background-color:rgba(0,0,0,0.5); - border-bottom:1px solid #000000; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -.helpfulalbum -{ - background-color:rgba(0,0,0,0.4); -} - -.tagholder_wide -{ - background-color:rgba(0,0,0,0.6); -} - -.highlighted { - background-color:rgba(150,0,120,0.8); -} - -#artistchooser -{ - background-color:rgba(0,0,0,0.4); - color:#555555; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: rgba(0,0,0,0.2); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid yellow; -} - -.infosection h2 -{ - border-bottom:2px solid white; -} diff --git a/www/rompr/themes/ShootingStars.css b/www/rompr/themes/ShootingStars.css deleted file mode 100644 index ea10d6b..0000000 --- a/www/rompr/themes/ShootingStars.css +++ /dev/null @@ -1,391 +0,0 @@ -html, body.phone .dropmenu { - background-image:url("themes/shootingstars.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; -} - -body.phone .dropmenu>div { - background-clip:border-box; -} - -.helpfulalbum -{ - background-color:rgba(0,0,0,0.4); -} - -.tagholder_wide -{ - background-color:rgba(0,0,0,0.6); -} - -#artistbio -{ - padding:4px; -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input -{ - color:#eeeeee; -} - -a:link -{ - color:yellow; -} - -a:visited -{ - color:yellow; -} - -a:hover,a:active -{ - text-shadow: 0 0 15px #000000; - cursor:pointer; -} - -.infowiki -{ - color:white; -} - -.item -{ - margin-bottom: 2px; -} - -/*-- divs used to create infobar layout --*/ - -button, input[type="button"], .filebutton -{ - color:#dddddd; - background-color:rgba(200,200,200,0.3); - border:none; -} - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - color:#ffffff; - background-color:rgba(200,200,200,0.5); -} - -select { - color:white; -} - -.selectholder { - background-color:rgba(200,200,200,0.2); -} - -.selectholder:hover { - background-color:rgba(200,200,200,0.2); -} - -input[type="text"] { - background-color: rgba(200,200,200,0.2); - border-bottom: 1px solid #555555; -} - -input[type="text"]:hover { - background-color: rgba(200,200,200,0.2); - border-bottom: 1px solid #555555; -} - -input[type="text"]:focus { - transition: border-bottom 0.5s ease; - border-bottom: 1px solid #bbbbbb; -} - -.drop-box { - background-color:rgba(6,29,47,0.9); - color:white; -} - -#notifications -{ - background-color:rgba(0,0,0,0.9); -} - -a.album:visited -{ - color:#220000; -} - -a.album:hover,a.album:active -{ - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -#pset { - background-color: rgba(2, 23, 40, 0.99); -} -#pmaxset { - background-color: rgba(200, 200, 200, 0.99); -} - -#filemenu -{ - border-left:1px solid white; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#ffffff; -} - -.selected -{ - background-color:rgba(255,72,0,0.5); -} - - -/*-- divs and classes used in the playlist --*/ - -.playlistcurrentitem -{ - font-weight:bold; - border-left:4px solid white; - color:#eeeeee; - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.clicktrack.playlistcurrentitem -{ - padding-left:8px; -} - -.playlistitem -{ - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlistcurrenttitle -{ - text-shadow: 0px 0px 20px #cccccc; - font-weight:bold; - color:#eeeeee; - background-color:rgba(0,0,0,0.2); -} - -.playlisttitle{ - background-color:rgba(0,0,0,0.2); -} - -/*-- For Wikipedia and Last.FM pages --*/ - -.stleft -{ - border-right:1px solid #888888; -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -.infosection -{ - background-color:rgba(255,255,255,0.2); - background-size:cover; - background-repeat:no-repeat; -} - -.translucent -{ - opacity:0.7; -} - -/*-- For Album Cover Art --*/ - -.crackbaby -{ - background-color:rgba(255,255,255,0.2); - box-sizing:border-box; - background-size:cover; - background-repeat:no-repeat; -} - -.popupwindow -{ - background-color:rgba(0,0,0,0.8); -} - -/*-- Styles for drop-down menus --*/ - -div.topdropmenu -{ - background-color:rgba(0,0,0,0.9); -} - -.configtitle -{ - background-color:rgba(6,29,47,0.9); -} - -body.mobile .configtitle -{ - width:100%; - margin-left:auto; - margin-right:auto; -} - -/*-- Styles to make the Wikipedia nav boxes look prettier --*/ - -table.navbox th -{ - background-color: rgba(255,255,255,0.2); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid yellow; -} - -.infosection h2 -{ - border-bottom:2px solid white; -} - -#tagadder -{ - background-color:rgba(0,0,0,0.9); -} - -table.histable tr:hover { - font-size:105%; - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - transition:all 0.1s; -} - -table.histable tr -{ - transition:all 0.2s; -} - -.backhi:hover { - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - cursor:pointer; - transition:all 0.1s; -} - -.backhi -{ - transition:all 0.2s; -} - -tr.clickaddtrack:hover -{ - background-color:#e1e4ea; -} - -.bsel -{ - color:#ffffff; - text-shadow:0 0 15px #ffffff; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.highlighted { - background-color:rgba(0,50,100,0.8); -} - -.tagholder table tr th { - background-color:rgba(255,255,255,0.5); - border-bottom:1px solid #cccccc; -} - -#artistchooser -{ - background-color:rgba(255,255,255,0.1); - color:#aaaaaa; -} - -.currentbun -{ - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.6); -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border:1px solid #414141; -} - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -#dragger -{ - background-color:rgba(0,0,0,0.3); -} diff --git a/www/rompr/themes/Skytrails.css b/www/rompr/themes/Skytrails.css deleted file mode 100644 index bdcbc7a..0000000 --- a/www/rompr/themes/Skytrails.css +++ /dev/null @@ -1,453 +0,0 @@ -/* -===================================================================== -= Standard HTML Elements -===================================================================== -*/ - -html, body.phone .dropmenu { - background-image:url("themes/skytrailscrop.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; -} - -body.phone .dropmenu>div.playable, -body.phone .dropmenu>div.menuitem, -body.phone #pluginplaylistholder .menuitem.clickicon, -body.phone #pluginplaylistholder .menuitem.containerbox.fullwidth { - background-color:rgba(255,255,255,0.3); - background-clip:border-box; - margin-top: 4px; -} - -body.phone .dropmenu>div { - background-color:rgba(255,255,255,0.3); -} - -body.phone .mainpane .faveradio, -body.phone .mainpane .radio, -body.phone .mainpane .podcast:not(.podicon):not(.podglobal), -body.phone .mainpane .directory { - background-color:rgba(255,255,255,0.3); - background-clip:border-box; - margin-top: 4px; -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input -{ - color:#000000; -} - -a:link -{ - color:#ff4800; -} - -a:visited -{ - color:#ff4800; -} - -a:hover,a:active -{ - text-shadow: 0 0 15px #000000; - cursor:pointer; -} - -button, input[type="button"], .filebutton -{ - color:#000000; - background-color:rgba(255,255,255,0.5); - border:1px solid #222222; -} - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - border:1px solid #bbbbbb; - background-color:rgba(255,255,255,0.7); -} - -select { - color:#000000; -} - -.selectholder { - background-color:rgba(255,255,255,0.3); -} - -.selectholder:hover { - background-color:rgba(255,255,255,0.4); -} - -input[type="text"] { - background-color: rgba(255,255,255,0.3); - border-bottom: 1px solid #bbbbbb; -} - -input[type="text"]:hover { - background-color: rgba(255,255,255,0.4); - border-bottom: 1px solid #bbbbbb; -} - -input[type="text"]:focus { - transition: border-bottom 0.5s ease; - border-bottom: 1px solid #555555; -} - -.drop-box { - background-color: rgba(255,255,255,0.4); -} - -/* -===================================================================== -= Specific Elements By ID -===================================================================== -*/ - -#sources -{ - background-color:rgba(255,255,255,0.3); -} - -#playlist -{ - background-color:rgba(255,255,255,0.3); -} - -#notifications -{ - background-color:rgba(65,65,85,0.9); - color:#ffffff; -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -#tagadder -{ - background-color:rgba(65,65,85,0.9); - color:white; -} - -#dragger -{ - background-color:rgba(0,0,0,0.3); -} - -#pset { - background-color: rgba(155, 187, 222, 0.99); -} -#pmaxset { - background-color: rgba(252, 189, 104, 0.99); -} - -/* -===================================================================== -= General Classes -===================================================================== -*/ - -.mainpane -{ - background-color:rgba(255,255,255,0.3); -} - -.album2 -{ - background-color:rgba(255,255,255,0.2); -} - -.item -{ - margin-bottom: 2px; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#ffffff; -} - -.selected -{ - background-color:rgba(255,72,0,0.7); -} - -/*-- divs and classes used in the playlist --*/ - -.playlistcurrentitem -{ - font-weight:bold; - font-size:120%; - color:#ff4800; - transition:font-size 0.2s ease, text-shadow 0.2s ease; -} - -.playlistitem -{ - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlistcurrenttitle -{ - text-shadow: 0px 0px 20px #cccccc; - font-weight:bold; - color:#ff4800; - background-color:rgba(255,255,255,0.2); -} - -.playlisttitle{ - background-color:rgba(255,255,255,0.2); -} - -.stleft -{ - border-right:1px solid #888888; -} - -.popupwindow -{ - background-color:rgba(65,65,85,0.9); - color:white; -} - -.popupwindow td, .popupwindow h2, .popupwindow p -{ - color:white; -} - -table.histable tr:hover { - font-size:105%; - text-shadow: 0 0 15px #ffffff; - color:#000000; - transition:all 0.1s; -} - -table.histable tr -{ - transition:all 0.2s; -} - -.backhi:hover { - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - cursor:pointer; - transition:all 0.1s; -} - -.backhi -{ - transition:all 0.2s; -} - -tr.clickaddtrack:hover -{ - background-color:#e1e4ea; -} - -.bsel -{ - color:#000000; - text-shadow:0 0 15px #666666; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.tagholder table tr th { - background-color:rgba(255,255,255,0.5); - border-bottom:1px solid #333333; -} - -.currentbun -{ - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.5); -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border:1px solid #414141; -} - -/* -===================================================================== -= Dropdown Menus -===================================================================== -*/ - -div.topdropmenu -{ - background-color:rgba(135,180,222,0.9); -} - -.configtitle -{ - background-color:rgba(255,255,255,0.5); -} - -body.mobile .configtitle -{ - width:100%; - margin-left:auto; - margin-right:auto; -} - -/* -===================================================================== -= Info Panel - General -===================================================================== -*/ - -#infopane -{ - background-color:rgba(255,255,255,0.4); -} - -#artistbio -{ - padding:4px; -} - -.infowiki -{ - color:black; -} - -.infosection -{ - background-color:rgba(255,255,255,0.4); - background-size:cover; - background-repeat:no-repeat; -} - -/* -===================================================================== -= Info Panel - Spotify -===================================================================== -*/ -.helpfulalbum -{ - background-color:rgba(255,255,255,0.4); -} - -.tagholder_wide -{ - background-color:rgba(255,255,255,0.5); -} - -/* -===================================================================== -= Podcasts -===================================================================== -*/ - -.podcastitem -{ - border-top:1px solid #000000; -} - -/* -===================================================================== -= For Album Art Manager -===================================================================== -*/ - -#artistcoverslist -{ - background-color:rgba(255,255,255,0.3); -} - -.highlighted { - background-color:rgba(200,217,240,0.9); -} - -#artistchooser -{ - background-color:rgba(255,255,255,0.2); - color:#777777; -} - -/* -===================================================================== -= Things that look like they might be for styling wikipedia data -===================================================================== -*/ - -table.navbox th -{ - background-color: rgba(255,255,255,0.2); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid black; -} - -.infosection h2 -{ - border-bottom:2px solid black; -} diff --git a/www/rompr/themes/Sunburst.css b/www/rompr/themes/Sunburst.css deleted file mode 100644 index fc5bfbf..0000000 --- a/www/rompr/themes/Sunburst.css +++ /dev/null @@ -1,377 +0,0 @@ -html, body.phone .dropmenu { - background-image: radial-gradient(circle farthest-side at top left, yellow, orange, red); -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input -{ - color:#000000; -} - -a:link -{ - color:#0b0080; -} - -a:visited -{ - color:#0b0080; -} - -a:hover,a:active -{ - text-shadow: 0 0 15px #000000; - cursor:pointer; -} - -#custombackground -{ - display:none; -} - -/*-- divs used to create infobar layout --*/ - -.bordered -{ - border-left:1px solid orange; - border-bottom:1px solid yellow; - border-right:1px solid yellow; - border-top:1px solid orange; -} - -.album1 -{ - background-color:rgba(0,0,0,0.1); -} - -.album2 -{ - background-color:rgba(0,0,0,0.2); -} - -button, input[type="button"], .filebutton -{ - background-image: radial-gradient(circle farthest-side at center, yellow, orange, red); - color:#000000; - border:1px solid #000000; -} - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - color:#ffffff; - text-shadow: 0 0 15px #ffffff; -} - -input -{ - color:#181818; -} - -input.inbrowser, div.inbrowser -{ - border: 1px solid #000000; -} - -select -{ - color:#000000; -} - -#pset { - background-color: rgba(255, 22, 0, 0.99); -} - -#notifications -{ - background-image: radial-gradient(circle farthest-side at top left, yellow, orange, red); -} - -a.album:visited -{ - color:#220000; -} - -a.album:hover,a.album:active -{ - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -#filemenu -{ - border-left:1px solid orange; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#ffffff; -} - -.selected -{ - background-color:#ff4800; -} - - -/*-- divs and classes used in the playlist --*/ - -.playlistcurrentitem -{ - font-weight:bold; - font-size:120%; - border-left:4px solid yellow; - color:#eeeeee; - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.clicktrack.playlistcurrentitem -{ - padding-left:8px; -} - -.playlistitem -{ - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlistcurrenttitle -{ - text-shadow: 0px 0px 20px #cccccc; - font-weight:bold; - color:#eeeeee; -} - -.inbrowser -{ - color:#000000; -} - -/*-- For Wikipedia and Last.FM pages --*/ - -.stleft -{ - border-right:1px solid #888888; -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -.infosection -{ - background-image: radial-gradient(circle farthest-side at top left, yellow, orange, red); -} - -.translucent -{ - opacity:0.7; -} - -/*-- For Album Cover Art --*/ - -.crackbaby -{ - background-image: radial-gradient(circle farthest-side at top left, yellow, orange, red); - box-sizing:border-box; -} - -.popupwindow -{ - background-image: radial-gradient(circle farthest-side at top left, yellow, orange, red); - border-left:1px solid yellow; - border-bottom:1px solid red; - border-right:1px solid red; - border-top:1px solid yellow; -} - -/*-- Styles for drop-down menus --*/ - -div.topdropmenu -{ - background-image: radial-gradient(circle farthest-side at top left, yellow, orange, red); - border-left:1px solid yellow; - border-bottom:1px solid red; - border-right:1px solid red; -} - -.configtitle -{ - background-image: radial-gradient(circle farthest-side at top left, yellow, orange, red); -} - -body.mobile .configtitle -{ - width:95%; - margin-left:auto; - margin-right:auto; -} - -/*-- Styles to make the Wikipedia nav boxes look prettier --*/ - -table.navbox th -{ - background-color: rgba(0,0,0,0.1); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid orange; -} - -.infosection h2 -{ - border-bottom:2px solid orange; -} - -#tagadder -{ - background-image: radial-gradient(circle farthest-side at top left, yellow, orange, red); - background-color:yellow; -} - -table.histable tr:hover { - font-size:105%; - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - transition:all 0.1s; -} - -table.histable tr -{ - transition:all 0.2s; -} - -.backhi:hover { - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - cursor:pointer; - transition:all 0.1s; -} - -.backhi -{ - transition:all 0.2s; -} - -tr.clickaddtrack:hover -{ - background-color:#e1e4ea; -} - -.helpfulalbum -{ - background-color:rgba(255,255,255,0.2); -} - -.tagholder_wide -{ - background-color:rgba(255,255,255,0.2); -} - -.bsel -{ - color:#ffffff; - text-shadow:0 0 15px #ffffff; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.highlighted { - background-color:rgba(255,226,0,1); -} - -#artistcoverslist -{ - background-color:rgba(0,0,0,0.2); -} - -.tagholder table tr th { - background-color:rgba(255,255,255,0.5); - border-bottom:1px solid #cccccc; -} - -#artistchooser -{ - background-color:rgba(0,0,0,0.3); - color:#aaaaaa; -} - -.currentbun -{ - border-bottom:1px solid #000000; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.6); -} - -.progressbar -{ - border:1px solid #414141; -} - -.podcastitem -{ - border-top:1px solid #000000; -} - -#dragger -{ - background-color:rgba(0,0,0,0.3); -} diff --git a/www/rompr/themes/Sunset.css b/www/rompr/themes/Sunset.css deleted file mode 100644 index 94bea36..0000000 --- a/www/rompr/themes/Sunset.css +++ /dev/null @@ -1,438 +0,0 @@ -html, body.phone .dropmenu -{ - background-image:url("themes/sunsetbirds.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; -} - -body.phone .dropmenu>div.playable, -body.phone .dropmenu>div.menuitem, -body.phone #pluginplaylistholder .menuitem.clickicon, -body.phone #pluginplaylistholder .menuitem.containerbox.fullwidth { - background-color:rgba(0,0,0,0.2); - background-clip:border-box; - margin-top: 4px; -} - -body.phone .dropmenu>div { - background-color:rgba(0,0,0,0.2); -} - -body.phone .mainpane .faveradio, -body.phone .mainpane .radio, -body.phone .mainpane .podcast:not(.podicon):not(.podglobal), -body.phone .mainpane .directory { - background-color:rgba(0,0,0,0.1); - background-clip:border-box; - margin-top: 4px; -} - -#sources, .mainpane -{ - background-color:rgba(0,0,0,0.2); -} - -.album2 -{ - background-color:rgba(0,0,0,0.2); -} - -#playlist, #infopane -{ - background-color:rgba(0,0,0,0.2); -} - -.helpfulalbum -{ - background-color:rgba(0,0,0,0.4); -} - -.tagholder_wide -{ - background-color:rgba(0,0,0,0.6); -} - -#artistbio -{ - padding:4px; -} - -#pset { - background-color: rgba(1, 1, 1, 0); -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input,select -{ - color:#eeeeee; -} - -body.mobile .headerbar { - background-color: rgba(0,0,0,0.4); -} - -.albumsection { - background-color: rgba(0,0,0,0.4); -} - -a:link -{ - color:yellow; -} - -a:visited -{ - color:yellow; -} - -a:hover,a:active -{ - text-shadow: 0 0 15px #000000; - cursor:pointer; -} - -.infowiki -{ - color:white; -} - -.item -{ - margin-bottom: 2px; -} - -/*-- divs used to create infobar layout --*/ - -button, input[type="button"], .filebutton -{ - color:#dddddd; - background-color:transparent; - border:1px solid #aaaaaa; -} - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - color:#ffffff; - border:1px solid #ffffff; - text-shadow: 0 0 15px #ffffff; -} - -.selectholder { - background-color:rgba(200,200,200,0.2); -} - -.selectholder:hover { - background-color:rgba(200,200,200,0.2); -} - -input[type="text"] { - background-color: rgba(200,200,200,0.2); - border-bottom: 1px solid #555555; -} - -input[type="text"]:hover { - border-bottom: 1px solid #555555; -} - -input[type="text"]:focus { - transition: border-bottom 0.5s ease; - border-bottom: 1px solid #bbbbbb; -} - -select:hover { - color: #ffffff; -} - -.drop-box { - background-color: rgba(200,200,200,0.3); - color:white; -} - -#notifications -{ - background-color:rgba(0,0,0,0.9); -} - -a.album:visited -{ - color:#220000; -} - -a.album:hover,a.album:active -{ - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -#filemenu -{ - border-left:1px solid white; -} - -#pset { - background-color: rgba(139, 32, 23, 0.99); -} -#pmaxset { - background-color: rgba(173, 100, 44, 0.99); -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#ffffff; -} - -.selected -{ - background-color:rgba(255,72,0,0.5); -} - -/*-- divs and classes used in the playlist --*/ - -.playlistcurrentitem -{ - font-weight:bold; - font-size:120%; - border-left:4px solid white; - color:#eeeeee; - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.clicktrack.playlistcurrentitem -{ - padding-left:8px; -} - -.playlistitem -{ - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlistcurrenttitle -{ - text-shadow: 0px 0px 20px #cccccc; - font-weight:bold; - color:#eeeeee; - background-color:rgba(0,0,0,0.2); -} - -/*-- For Wikipedia and Last.FM pages --*/ - -.stleft -{ - border-right:1px solid #888888; -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -.infosection -{ - background-color:rgba(0,0,0,0.3); - background-size:cover; - background-repeat:no-repeat; -} - -.translucent -{ - opacity:0.7; -} - -/*-- For Album Cover Art --*/ - -.crackbaby -{ - background-color:rgba(0,0,0,0.3); - box-sizing:border-box; - background-size:cover; - background-repeat:no-repeat; -} - -.popupwindow -{ - background-color:rgba(0,0,0,0.8); -} - -/*-- Styles for drop-down menus --*/ - -div.topdropmenu -{ - background-color:rgba(0,0,0,0.9); -} - -.configtitle -{ - background-color:rgba(150,40,23,0.7); - margin-top:4px; -} - -body.mobile .configtitle -{ - width:100%; - margin-left:auto; - margin-right:auto; -} - -/*-- Styles to make the Wikipedia nav boxes look prettier --*/ - -table.navbox th -{ - background-color: rgba(0,0,0,0.2); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid yellow; -} - -.infosection h2 -{ - border-bottom:2px solid white; -} - -#tagadder -{ - background-color:rgba(0,0,0,0.8); -} - -table.histable tr:hover { - font-size:105%; - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - transition:all 0.1s; -} - -table.histable tr -{ - transition:all 0.2s; -} - -.backhi:hover { - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - cursor:pointer; - transition:all 0.1s; -} - -.backhi -{ - transition:all 0.2s; -} - -tr.clickaddtrack:hover -{ - background-color:#e1e4ea; -} - -.bsel -{ - color:#ffffff; - text-shadow:0 0 15px #ffffff; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.highlighted { - background-color:rgba(0,0,0,0.7) !important; -} - -.tagholder table tr th { - background-color:rgba(0,0,0,0.2); - border-bottom:1px solid #000000; -} - -#artistchooser -{ - background-color:rgba(0,0,0,0.3); - color:#aaaaaa; -} - -.currentbun -{ - border-bottom:1px solid #ffffff; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.5); -} - -.progressbar -{ - border:1px solid #414141; -} - -.progressbar_v -{ - border:1px solid #414141; -} - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -#dragger -{ - background-color:rgba(0,0,0,0.3); -} - -.ratsoptions { - border-top: 1px solid #999999; -} diff --git a/www/rompr/themes/SunsetLoch.css b/www/rompr/themes/SunsetLoch.css deleted file mode 100644 index dcb2e48..0000000 --- a/www/rompr/themes/SunsetLoch.css +++ /dev/null @@ -1,405 +0,0 @@ -html, body.phone .dropmenu { - background-image:url("themes/sunset_loch.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; -} - -body.phone .dropmenu>div { - background-color:rgba(0,0,0,0.4); - background-clip:border-box; -} - -#sources, #artistcoverslist -{ - background-color:rgba(0,0,0,0.4); -} - -.mainpane -{ - background-color:rgba(0,0,0,0.3); -} - -.album2 -{ - background-color:rgba(0,0,0,0.2); -} - -#playlist -{ - background-color:rgba(0,0,0,0.4); -} - -#infopane -{ - background-color:rgba(0,0,0,0.5); -} - -.helpfulalbum -{ - background-color:rgba(0,0,0,0.4); -} - -.tagholder_wide -{ - background-color:rgba(0,0,0,0.6); -} - -#artistbio -{ - padding:4px; -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input -{ - color:#eeeeee; -} - -a:link -{ - color:yellow; -} - -a:visited -{ - color:yellow; -} - -a:hover,a:active -{ - text-shadow: 0 0 15px #000000; - cursor:pointer; -} - -.infowiki -{ - color:white; -} - -.item -{ - margin-bottom: 2px; -} - -/*-- divs used to create infobar layout --*/ - -button, input[type="button"], .filebutton -{ - color:#dddddd; - background-color:transparent; - border:1px solid #aaaaaa; -} - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - color:#ffffff; - border:1px solid #ffffff; - text-shadow: 0 0 15px #ffffff; -} - -input -{ - color:#181818; -} - -input.snapclientname[type=text] { - color: #ffffff; -} - -select -{ - color:#000000; -} - -#notifications -{ - background-color:rgba(0,0,0,0.9); -} - -#pset { - background-color: rgba(23, 38, 77, 0.99); -} -#pmaxset { - background-color: rgba(155, 172, 227, 0.99); -} - -a.album:visited -{ - color:#220000; -} - -a.album:hover,a.album:active -{ - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -#filemenu -{ - border-left:1px solid white; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#ffffff; -} - -.selected -{ - background-color:rgba(255,72,0,0.5); -} - -/*-- divs and classes used in the playlist --*/ - -.playlistcurrentitem -{ - font-weight:bold; - font-size:120%; - border-left:4px solid white; - color:#eeeeee; - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.clicktrack.playlistcurrentitem -{ - padding-left:8px; -} - -.playlistitem -{ - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlistcurrenttitle -{ - text-shadow: 0px 0px 20px #cccccc; - font-weight:bold; - color:#eeeeee; - background-color:rgba(0,0,0,0.1); -} - -.playlisttitle{ - background-color:rgba(0,0,0,0.1); -} - -.inbrowser -{ - color:#000000; -} - -/*-- For Wikipedia and Last.FM pages --*/ - -.stleft -{ - border-right:1px solid #888888; -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -.infosection -{ - background-color:rgba(0,0,0,0.5); - background-size:cover; - background-repeat:no-repeat; -} - -.translucent -{ - opacity:0.7; -} - -/*-- For Album Cover Art --*/ - -.crackbaby -{ - background-color:rgba(0,0,0,0.5); - box-sizing:border-box; - background-size:cover; - background-repeat:no-repeat; -} - -.popupwindow -{ - background-color:rgba(0,0,0,0.8); -} - -/*-- Styles for drop-down menus --*/ - -div.topdropmenu -{ - background-color:rgba(0,0,0,0.9); -} - -.configtitle -{ - background-color:rgba(60,0,200,0.3); -} - -body.mobile .configtitle -{ - width:100%; - margin-left:auto; - margin-right:auto; -} - -/*-- Styles to make the Wikipedia nav boxes look prettier --*/ - -table.navbox th -{ - background-color: rgba(0,0,0,0.2); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid yellow; -} - -.infosection h2 -{ - border-bottom:2px solid white; -} - -#tagadder -{ - background-color:rgba(0,0,0,0.8); -} - -table.histable tr:hover { - font-size:105%; - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - transition:all 0.1s; -} - -table.histable tr -{ - transition:all 0.2s; -} - -.backhi:hover { - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - cursor:pointer; - transition:all 0.1s; -} - -.backhi -{ - transition:all 0.2s; -} - -tr.clickaddtrack:hover -{ - background-color:#e1e4ea; -} - -.bsel -{ - color:#ffffff; - text-shadow:0 0 15px #ffffff; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.highlighted { - background-color:rgba(84,91,189,0.8) !important; -} - -.tagholder table tr th { - background-color:rgba(0,0,0,0.5); - border-bottom:1px solid #000000; -} - -#artistchooser -{ - background-color:rgba(0,0,0,0.3); - color:#aaaaaa; -} - -.currentbun -{ - border-bottom:1px solid #000000; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.4); -} - -.progressbar -{ - border:1px solid #666666; -} - -.progressbar_v -{ - border:1px solid #666666; -} - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -#dragger -{ - background-color:rgba(0,0,0,0.3); -} diff --git a/www/rompr/themes/Table.css b/www/rompr/themes/Table.css deleted file mode 100644 index f66cabd..0000000 --- a/www/rompr/themes/Table.css +++ /dev/null @@ -1,424 +0,0 @@ -@media screen and (orientation: landscape) { - html, body.phone .dropmenu { - background-image:url("themes/table.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; - } -} - -@media screen and (orientation: portrait) { - html, body.phone .dropmenu { - background-image:url("themes/table_portrait.jpg"); - background-size:cover; - background-repeat:no-repeat; - background-attachment:fixed; - } -} - -#sources, #artistcoverslist, #infobar.coloured, #headerbar, #thetopbit -{ - background-color:rgba(0,0,0,0.3); -} - -.mainpane -{ - background-color:rgba(0,0,0,0.2); -} - -.album2 -{ - background-color:rgba(0,0,0,0.2); -} - -#playlist -{ - background-color:rgba(0,0,0,0.3); -} - -#infopane -{ - background-color:rgba(0,0,0,0.3); -} - -.helpfulalbum -{ - background-color:rgba(0,0,0,0.4); -} - -.tagholder_wide -{ - background-color:rgba(0,0,0,0.6); -} - -#artistbio -{ - padding:4px; -} - -#pset { - background-color: rgba(54, 61, 64, 0.99); -} -#pmaxset { - background-color: rgba(121, 105, 89, 0.99); -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input -{ - color:#eeeeee; -} - -a:link -{ - color:yellow; -} - -a:visited -{ - color:yellow; -} - -a:hover,a:active -{ - text-shadow: 0 0 15px #000000; - cursor:pointer; -} - -.infowiki -{ - color:white; -} - -/*-- divs used to create infobar layout --*/ - -button, input[type="button"], .filebutton -{ - color:#dddddd; - background-color:transparent; - border:1px solid #aaaaaa; -} - -button:hover, input[type="button"]:hover, .filebutton:hover -{ - color:#ffffff; - border:1px solid #ffffff; - text-shadow: 0 0 15px #ffffff; -} - -select { - color:#dddddd; -} - -.selectholder { - background-color:rgba(0,0,0,0.5); -} - -.selectholder:hover { - background-color:rgba(0,0,0,0.6); -} - -input[type="text"] { - background-color: rgba(0,0,0,0.5); - border-bottom: 1px solid #555555; -} - -input[type="text"]:hover { - background-color: rgba(0,0,0,0.6); - border-bottom: 1px solid #555555; -} - -input[type="text"]:focus { - background-color: rgba(0,0,0,0.6); - transition: border-bottom 0.5s ease; - border-bottom: 1px solid #bbbbbb; -} - -select:hover { - color: #ffffff; -} - -.drop-box { - background-color: rgba(0,0,0,0.6); - color:white; -} - -#notifications -{ - background-color:rgba(0,0,0,0.9); -} - -a.album:visited -{ - color:#220000; -} - -a.album:hover,a.album:active -{ - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -#filemenu -{ - border-left:1px solid white; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - cursor:pointer; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#ffffff; -} - -.selected -{ - background-color:rgba(255,72,0,0.5); -} - -/*-- divs and classes used in the playlist --*/ - -.playlistcurrentitem -{ - font-weight:bold; - font-size:120%; - border-left:4px solid white; - color:#eeeeee; - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.clicktrack.playlistcurrentitem -{ - padding-left:8px; -} - -.playlistitem -{ - transition:font-size 0.3s ease, text-shadow 0.3s ease; -} - -.playlistcurrenttitle -{ - text-shadow: 0px 0px 20px #cccccc; - font-weight:bold; - color:#eeeeee; - background-color:rgba(0,0,0,0.1); -} - -.playlisttitle{ - background-color:rgba(0,0,0,0.1); -} - -/*-- For Wikipedia and Last.FM pages --*/ - -.stleft -{ - border-right:1px solid #888888; -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -.infosection -{ - background-color:rgba(0,0,0,0.5); - background-size:cover; - background-repeat:no-repeat; -} - -.translucent -{ - opacity:0.7; -} - -/*-- For Album Cover Art --*/ - -.crackbaby -{ - background-color:rgba(0,0,0,0.5); - box-sizing:border-box; - background-size:cover; - background-repeat:no-repeat; -} - -.popupwindow -{ - background-color:rgba(0,0,0,0.8); -} - -/*-- Styles for drop-down menus --*/ - -div.topdropmenu -{ - background-color:rgba(135,123,110,0.9); -} - -.configtitle -{ - background-color:rgba(145,44,64,0.9); -} - -body.mobile .configtitle -{ - width:95%; - margin-left:auto; - margin-right:auto; -} - -/*-- Styles to make the Wikipedia nav boxes look prettier --*/ - -table.navbox th -{ - background-color: rgba(0,0,0,0.2); -} - -.navbox-abovebelow -{ - padding-bottom:4px; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -table.tracklist { - line-height:1.5em; -} - -.tracklist tbody tr th -{ - font-weight:bold; -} - -.description -{ - margin-top:4px; -} - -.underline -{ - border-bottom: 1px solid yellow; -} - -.infosection h2 -{ - border-bottom:2px solid white; -} - -#tagadder -{ - background-color:rgba(0,0,0,0.8); -} - -table.histable tr:hover { - font-size:105%; - text-shadow: 0 0 15px #ffffff; - color:#ffffff; - transition:all 0.1s; -} - -table.histable tr -{ - transition:all 0.2s; -} - -.backhi:hover { - text-shadow: 0 0 15px #ffffff; - color:#ff4800; - cursor:pointer; - transition:all 0.1s; -} - -.backhi -{ - transition:all 0.2s; -} - -tr.clickaddtrack:hover -{ - background-color:#e1e4ea; -} - -.bsel -{ - color:#ffffff; - text-shadow:0 0 15px #ffffff; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.highlighted { - background-color:rgba(0,0,0,0.7) !important; -} - -.tagholder table tr th { - background-color:rgba(0,0,0,0.5); - border-bottom:1px solid #000000; -} - -#artistchooser -{ - background-color:rgba(0,0,0,0.3); - color:#aaaaaa; -} - -.currentbun -{ - border-bottom:1px solid #000000; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.4); -} - -.progressbar -{ - border:1px solid #666666; -} - -.progressbar_v -{ - border:1px solid #666666; -} - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -#dragger -{ - background-color:rgba(0,0,0,0.3); -} diff --git a/www/rompr/themes/TheBlues.css b/www/rompr/themes/TheBlues.css deleted file mode 100644 index c23c98d..0000000 --- a/www/rompr/themes/TheBlues.css +++ /dev/null @@ -1,333 +0,0 @@ -html, body.phone .dropmenu { - color:#000000; - background-color:#171760; -} - -body,p,h1,h2,h3,h4,table,td,th,ul,ol,textarea,input -{ - color:#dddddd; -} - -h1,h2,h3,h4,h5,h6 -{ - color:#eeeeee; -} - -a:link -{ - color:#dcdcff; -} - -a:visited -{ - color:#dcdcff; -} - -a:hover,a:active -{ - color:#ff4800; -} - -input -{ - color:#222222; -} - -button, .filebutton -{ - color:#000000; - border: 1px solid #000000; -} - -button:hover, .filebutton:hover -{ - color:#ff4800; - border:1px solid #ff4800; - text-shadow: 0 0 15px #ff4800; -} - -select -{ - color:#222222; -} - -input.inbrowser, div.inbrowser -{ - border: 1px solid #888888; -} - -input.snapclientname[type=text] { - color: #ffffff; -} - -#notifications -{ - background-color:#181850; -} - -#custombackground -{ - display:none; -} - -/*-- divs used to create infobar layout --*/ - -.bordered -{ - border-left:1px solid #121240; - border-bottom:1px solid #1a1a90; - border-right:1px solid #1a1a90; - border-top:1px solid #121240; -} - -/*-- divs and classes used in the albums list --*/ - -.album1 -{ - background-color:#181850; -} - -.album2 -{ - background-color:#171760; -} - -a.album:visited -{ - color:#dcdcff; -} - -a.album:hover,a.album:active -{ - color:#ff4800; -} - -#filemenu -{ - border-left:1px solid #444444; -} - -.playable:hover, .infoclick:hover, div.clickplaylist:hover, tr.playable:hover>td { - color:#ff4800; -} - -.playable.selected:hover, tr.playable.selected:hover>td { - color:#dddddd; -} - -.selected -{ - background-color:#ff4800; -} - -/*-- divs and classes used in the playlist --*/ - -.playlistcurrentitem -{ - color:#cc0000; -} - -.playlistcurrenttitle -{ - color:#cc0000; -} - -.item -{ - border-top:1px solid #0022dd; -} - -/*-- For Wikipedia and Last.FM pages --*/ - -.stleft -{ - border-right:1px solid #aaaaaa; -} - -#wikipopup -{ - background-color:#000000; -} - -#imagecontainer -{ - background-color:#ffffff; -} - -.infosection -{ - background-color:#131330; -} - -.albumsection -{ - background-color:#131330; -} - -#imageeditor -{ - background-color:#131330; -} - -.translucent -{ - opacity:0.7; -} - -.infowiki -{ - background-color:#171760; -} - -/*-- For Album Cover Art --*/ - -.crackbaby -{ - background-color:#181850; -} - -#albumcovers -{ - background-color:#171760; -} - -.popupwindow -{ - background-color:#121230; - border-left:2px solid #888888; - border-bottom:2px solid #888888; - border-right:2px solid #888888; - border-top:2px solid #888888; -} - -/*-- Styles for drop-down menus --*/ - -div.topdropmenu -{ - background-color:#181850; - border-left:1px solid #1a1a90; - border-bottom:1px solid #1a1a90; - border-right:1px solid #1a1a90; - border-top:none; -} - -.configtitle -{ - background-color:#171760; -} - -/*-- Styles to make the Wikipedia nav boxes look prettier --*/ - -table.navbox th -{ - background-color:#181850; -} - -.navbox-title a:link, -.navbox-abovebelow a:link, -.navbox-group a:link -{ - text-decoration:none; -} - -.navbox-title a:visited, -.navbox-abovebelow a:visited, -.navbox-group a:visited -{ - text-decoration:none; -} - -.navbox-title a:hover,a:active, -.navbox-abovebelow a:hover,a:active, -.navbox-group a:hover,a:active -{ - text-decoration:none; -} - -#tagadder -{ - background-color:#000055; -} - -tr.clickaddtrack:hover -{ - background-color:#171760; -} - -.highlighted { - border-top: 4px solid #fe6800 !important; - border-left: 4px solid #fe6800 !important; - border-right: 4px solid #fe6800 !important; - border-bottom: 4px solid #fe6800 !important; - border-radius:2px !important; -} - -.covercontainer.highlighted -{ - border-bottom: none !important; - margin-bottom:-4px; - background-color:#171760; -} - -#imageeditor -{ - background-color:#171760; -} - -.tagholder table tr th { - background-color:rgba(0,0,0,0.8); - border-bottom:1px solid #dddddd; -} - -.bsel -{ - color:#ff4800; -} - -.bmid -{ - border-left:2px solid #ff4800; -} - -.helpfulalbum -{ - background-color:#181850; -} - -.tagholder_wide -{ - background-color:#181850; -} - -#artistchooser -{ - border-top:1px solid #cccccc; - border-bottom:1px solid #cccccc; - color:#aaaaaa; -} - -.currentbun -{ - border-bottom:1px solid #fe6500; - padding-bottom:2px; -} - -.dropshadow -{ - box-shadow: 7px 7px 5px rgba(0, 0, 0, 0.6); -} - -.podcastitem -{ - border-top:1px solid #cccccc; -} - -#dragger -{ - background-color:rgba(0,0,0,0.3); -} - -.topbarplaycontrols { - border-left: 1px solid black; - border-right: 1px solid black; -} diff --git a/www/rompr/themes/acers2.jpg b/www/rompr/themes/acers2.jpg deleted file mode 100644 index 3d0fbd6..0000000 Binary files a/www/rompr/themes/acers2.jpg and /dev/null differ diff --git a/www/rompr/themes/bg.jpg b/www/rompr/themes/bg.jpg deleted file mode 100644 index e7452e5..0000000 Binary files a/www/rompr/themes/bg.jpg and /dev/null differ diff --git a/www/rompr/themes/fire-portrait.jpg b/www/rompr/themes/fire-portrait.jpg deleted file mode 100644 index 601dfcf..0000000 Binary files a/www/rompr/themes/fire-portrait.jpg and /dev/null differ diff --git a/www/rompr/themes/fire.jpg b/www/rompr/themes/fire.jpg deleted file mode 100644 index 430b16e..0000000 Binary files a/www/rompr/themes/fire.jpg and /dev/null differ diff --git a/www/rompr/themes/kernsary.jpg b/www/rompr/themes/kernsary.jpg deleted file mode 100644 index b95b31a..0000000 Binary files a/www/rompr/themes/kernsary.jpg and /dev/null differ diff --git a/www/rompr/themes/leaf.jpg b/www/rompr/themes/leaf.jpg deleted file mode 100644 index 2248b83..0000000 Binary files a/www/rompr/themes/leaf.jpg and /dev/null differ diff --git a/www/rompr/themes/leaftile.jpg b/www/rompr/themes/leaftile.jpg deleted file mode 100644 index f4765e0..0000000 Binary files a/www/rompr/themes/leaftile.jpg and /dev/null differ diff --git a/www/rompr/themes/leaves2.jpg b/www/rompr/themes/leaves2.jpg deleted file mode 100644 index e855b18..0000000 Binary files a/www/rompr/themes/leaves2.jpg and /dev/null differ diff --git a/www/rompr/themes/mountains.jpg b/www/rompr/themes/mountains.jpg deleted file mode 100644 index bdf90e5..0000000 Binary files a/www/rompr/themes/mountains.jpg and /dev/null differ diff --git a/www/rompr/themes/nightclouds.jpg b/www/rompr/themes/nightclouds.jpg deleted file mode 100644 index dd9bd94..0000000 Binary files a/www/rompr/themes/nightclouds.jpg and /dev/null differ diff --git a/www/rompr/themes/oldpaper.jpg b/www/rompr/themes/oldpaper.jpg deleted file mode 100644 index 931cd9a..0000000 Binary files a/www/rompr/themes/oldpaper.jpg and /dev/null differ diff --git a/www/rompr/themes/plasma.jpg b/www/rompr/themes/plasma.jpg deleted file mode 100644 index a031f42..0000000 Binary files a/www/rompr/themes/plasma.jpg and /dev/null differ diff --git a/www/rompr/themes/plasma_portrait.jpg b/www/rompr/themes/plasma_portrait.jpg deleted file mode 100644 index de84dcd..0000000 Binary files a/www/rompr/themes/plasma_portrait.jpg and /dev/null differ diff --git a/www/rompr/themes/shootingstars.jpg b/www/rompr/themes/shootingstars.jpg deleted file mode 100644 index 0e521eb..0000000 Binary files a/www/rompr/themes/shootingstars.jpg and /dev/null differ diff --git a/www/rompr/themes/skytrailscrop.jpg b/www/rompr/themes/skytrailscrop.jpg deleted file mode 100644 index 320df47..0000000 Binary files a/www/rompr/themes/skytrailscrop.jpg and /dev/null differ diff --git a/www/rompr/themes/sunset_loch.jpg b/www/rompr/themes/sunset_loch.jpg deleted file mode 100644 index d47a8ab..0000000 Binary files a/www/rompr/themes/sunset_loch.jpg and /dev/null differ diff --git a/www/rompr/themes/sunsetbirds.jpg b/www/rompr/themes/sunsetbirds.jpg deleted file mode 100644 index ba42314..0000000 Binary files a/www/rompr/themes/sunsetbirds.jpg and /dev/null differ diff --git a/www/rompr/themes/table.jpg b/www/rompr/themes/table.jpg deleted file mode 100644 index 15289ba..0000000 Binary files a/www/rompr/themes/table.jpg and /dev/null differ diff --git a/www/rompr/themes/table_portrait.jpg b/www/rompr/themes/table_portrait.jpg deleted file mode 100644 index a884b30..0000000 Binary files a/www/rompr/themes/table_portrait.jpg and /dev/null differ diff --git a/www/rompr/themes/tanpaper.jpg b/www/rompr/themes/tanpaper.jpg deleted file mode 100644 index 39badee..0000000 Binary files a/www/rompr/themes/tanpaper.jpg and /dev/null differ diff --git a/www/rompr/themes/veins.jpg b/www/rompr/themes/veins.jpg deleted file mode 100644 index d999f89..0000000 Binary files a/www/rompr/themes/veins.jpg and /dev/null differ diff --git a/www/rompr/themes/vellum-seamless-repeating-white.jpg b/www/rompr/themes/vellum-seamless-repeating-white.jpg deleted file mode 100644 index 7f5ce33..0000000 Binary files a/www/rompr/themes/vellum-seamless-repeating-white.jpg and /dev/null differ diff --git a/www/rompr/timezones.txt b/www/rompr/timezones.txt deleted file mode 100644 index c4d5112..0000000 --- a/www/rompr/timezones.txt +++ /dev/null @@ -1,576 +0,0 @@ -Africa/Abidjan -Africa/Accra -Africa/Addis_Ababa -Africa/Asmara -Africa/Asmera -Africa/Bamako -Africa/Bangui -Africa/Banjul -Africa/Bissau -Africa/Blantyre -Africa/Brazzaville -Africa/Bujumbura -Africa/Cairo -Africa/Casablanca -Africa/Ceuta -Africa/Conakry -Africa/Dakar -Africa/Dar_es_Salaam -Africa/Djibouti -Africa/Douala -Africa/El_Aaiun -Africa/Freetown -Africa/Gaborone -Africa/Harare -Africa/Johannesburg -Africa/Juba -Africa/Kigali -Africa/Kinshasa -Africa/Lagos -Africa/Libreville -Africa/Lome -Africa/Luanda -Africa/Lubumbashi -Africa/Lusaka -Africa/Malabo -Africa/Maputo -Africa/Maseru -Africa/Mbabane -Africa/Mogadishu -Africa/Monrovia -Africa/Nairobi -Africa/Ndjamena -Africa/Niamey -Africa/Nouakchott -Africa/Ouagadougou -Africa/Porto-Novo -Africa/Sao_Tome -Africa/Timbuktu -Africa/Tripoli -Africa/Tunis -Africa/Windhoek -America/Adak -America/Anchorage -America/Anguilla -America/Antigua -America/Araguaina -America/Argentina/Buenos_Aires -America/Argentina/Catamarca -America/Argentina/ComodRivadavia -America/Argentina/Cordoba -America/Argentina/Jujuy -America/Argentina/La_Rioja -America/Argentina/Mendoza -America/Argentina/Rio_Gallegos -America/Argentina/Salta -America/Argentina/San_Juan -America/Argentina/San_Luis -America/Argentina/Tucuman -America/Argentina/Ushuaia -America/Aruba -America/Asuncion -America/Atikokan -America/Atka -America/Bahia -America/Bahia_Banderas -America/Barbados -America/Belem -America/Belize -America/Blanc-Sablon -America/Boa_Vista -America/Bogota -America/Boise -America/Buenos_Aires -America/Cambridge_Bay -America/Campo_Grande -America/Cancun -America/Caracas -America/Catamarca -America/Cayenne -America/Cayman -America/Chicago -America/Chihuahua -America/Coral_Harbour -America/Cordoba -America/Costa_Rica -America/Creston -America/Cuiaba -America/Curacao -America/Danmarkshavn -America/Dawson -America/Dawson_Creek -America/Denver -America/Detroit -America/Dominica -America/Edmonton -America/Eirunepe -America/El_Salvador -America/Ensenada -America/Fort_Wayne -America/Fortaleza -America/Glace_Bay -America/Godthab -America/Goose_Bay -America/Grand_Turk -America/Grenada -America/Guadeloupe -America/Guatemala -America/Guayaquil -America/Guyana -America/Halifax -America/Havana -America/Hermosillo -America/Indiana/Indianapolis -America/Indiana/Knox -America/Indiana/Marengo -America/Indiana/Petersburg -America/Indiana/Tell_City -America/Indiana/Vevay -America/Indiana/Vincennes -America/Indiana/Winamac -America/Indianapolis -America/Inuvik -America/Iqaluit -America/Jamaica -America/Jujuy -America/Juneau -America/Kentucky/Louisville -America/Kentucky/Monticello -America/Knox_IN -America/Kralendijk -America/La_Paz -America/Lima -America/Los_Angeles -America/Louisville -America/Lower_Princes -America/Maceio -America/Managua -America/Manaus -America/Marigot -America/Martinique -America/Matamoros -America/Mazatlan -America/Mendoza -America/Menominee -America/Merida -America/Metlakatla -America/Mexico_City -America/Miquelon -America/Moncton -America/Monterrey -America/Montevideo -America/Montreal -America/Montserrat -America/Nassau -America/New_York -America/Nipigon -America/Nome -America/Noronha -America/North_Dakota/Beulah -America/North_Dakota/Center -America/North_Dakota/New_Salem -America/Ojinaga -America/Panama -America/Pangnirtung -America/Paramaribo -America/Phoenix -America/Port-au-Prince -America/Port_of_Spain -America/Porto_Acre -America/Porto_Velho -America/Puerto_Rico -America/Rainy_River -America/Rankin_Inlet -America/Recife -America/Regina -America/Resolute -America/Rio_Branco -America/Rosario -America/Santa_Isabel -America/Santarem -America/Santiago -America/Santo_Domingo -America/Sao_Paulo -America/Scoresbysund -America/Shiprock -America/Sitka -America/St_Barthelemy -America/St_Johns -America/St_Kitts -America/St_Lucia -America/St_Thomas -America/St_Vincent -America/Swift_Current -America/Tegucigalpa -America/Thule -America/Thunder_Bay -America/Tijuana -America/Toronto -America/Tortola -America/Vancouver -America/Virgin -America/Whitehorse -America/Winnipeg -America/Yakutat -America/Yellowknife -Antarctica/Casey -Antarctica/Davis -Antarctica/DumontDUrville -Antarctica/Macquarie -Antarctica/Mawson -Antarctica/McMurdo -Antarctica/Palmer -Antarctica/Rothera -Antarctica/South_Pole -Antarctica/Syowa -Antarctica/Vostok -Arctic/Longyearbyen -Asia/Aden -Asia/Almaty -Asia/Amman -Asia/Anadyr -Asia/Aqtau -Asia/Aqtobe -Asia/Ashgabat -Asia/Ashkhabad -Asia/Baghdad -Asia/Bahrain -Asia/Baku -Asia/Bangkok -Asia/Beirut -Asia/Bishkek -Asia/Brunei -Asia/Calcutta -Asia/Choibalsan -Asia/Chongqing -Asia/Chungking -Asia/Colombo -Asia/Dacca -Asia/Damascus -Asia/Dhaka -Asia/Dili -Asia/Dubai -Asia/Dushanbe -Asia/Gaza -Asia/Harbin -Asia/Hebron -Asia/Ho_Chi_Minh -Asia/Hong_Kong -Asia/Hovd -Asia/Irkutsk -Asia/Istanbul -Asia/Jakarta -Asia/Jayapura -Asia/Jerusalem -Asia/Kabul -Asia/Kamchatka -Asia/Karachi -Asia/Kashgar -Asia/Kathmandu -Asia/Katmandu -Asia/Khandyga -Asia/Kolkata -Asia/Krasnoyarsk -Asia/Kuala_Lumpur -Asia/Kuching -Asia/Kuwait -Asia/Macao -Asia/Macau -Asia/Magadan -Asia/Makassar -Asia/Manila -Asia/Muscat -Asia/Nicosia -Asia/Novokuznetsk -Asia/Novosibirsk -Asia/Omsk -Asia/Oral -Asia/Phnom_Penh -Asia/Pontianak -Asia/Pyongyang -Asia/Qatar -Asia/Qyzylorda -Asia/Rangoon -Asia/Riyadh -Asia/Saigon -Asia/Sakhalin -Asia/Samarkand -Asia/Seoul -Asia/Shanghai -Asia/Singapore -Asia/Taipei -Asia/Tashkent -Asia/Tbilisi -Asia/Tehran -Asia/Tel_Aviv -Asia/Thimbu -Asia/Thimphu -Asia/Tokyo -Asia/Ujung_Pandang -Asia/Ulaanbaatar -Asia/Ulan_Bator -Asia/Urumqi -Asia/Ust-Nera -Asia/Vientiane -Asia/Vladivostok -Asia/Yakutsk -Asia/Yekaterinburg -Asia/Yerevan -Atlantic/Azores -Atlantic/Bermuda -Atlantic/Canary -Atlantic/Cape_Verde -Atlantic/Faeroe -Atlantic/Faroe -Atlantic/Jan_Mayen -Atlantic/Madeira -Atlantic/Reykjavik -Atlantic/South_Georgia -Atlantic/St_Helena -Atlantic/Stanley -Australia/ACT -Australia/Adelaide -Australia/Brisbane -Australia/Broken_Hill -Australia/Canberra -Australia/Currie -Australia/Darwin -Australia/Eucla -Australia/Hobart -Australia/LHI -Australia/Lindeman -Australia/Lord_Howe -Australia/Melbourne -Australia/North -Australia/NSW -Australia/Perth -Australia/Queensland -Australia/South -Australia/Sydney -Australia/Tasmania -Australia/Victoria -Australia/West -Australia/Yancowinna -Brazil/Acre -Brazil/DeNoronha -Brazil/East -Brazil/West -Canada/Atlantic -Canada/Central -Canada/East-Saskatchewan -Canada/Eastern -Canada/Mountain -Canada/Newfoundland -Canada/Pacific -Canada/Saskatchewan -Canada/Yukon -CET -Chile/Continental -Chile/EasterIsland -CST6CDT -Cuba -EET -Egypt -Eire -EST -EST5EDT -Etc/GMT -Etc/GMT+0 -Etc/GMT+1 -Etc/GMT+10 -Etc/GMT+11 -Etc/GMT+12 -Etc/GMT+2 -Etc/GMT+3 -Etc/GMT+4 -Etc/GMT+5 -Etc/GMT+6 -Etc/GMT+7 -Etc/GMT+8 -Etc/GMT+9 -Etc/GMT-0 -Etc/GMT-1 -Etc/GMT-10 -Etc/GMT-11 -Etc/GMT-12 -Etc/GMT-13 -Etc/GMT-14 -Etc/GMT-2 -Etc/GMT-3 -Etc/GMT-4 -Etc/GMT-5 -Etc/GMT-6 -Etc/GMT-7 -Etc/GMT-8 -Etc/GMT-9 -Etc/GMT0 -Etc/Greenwich -Etc/UCT -Etc/Universal -Etc/UTC -Etc/Zulu -Europe/Amsterdam -Europe/Andorra -Europe/Athens -Europe/Belfast -Europe/Belgrade -Europe/Berlin -Europe/Bratislava -Europe/Brussels -Europe/Bucharest -Europe/Budapest -Europe/Busingen -Europe/Chisinau -Europe/Copenhagen -Europe/Dublin -Europe/Gibraltar -Europe/Guernsey -Europe/Helsinki -Europe/Isle_of_Man -Europe/Istanbul -Europe/Jersey -Europe/Kaliningrad -Europe/Kiev -Europe/Lisbon -Europe/Ljubljana -Europe/London -Europe/Luxembourg -Europe/Madrid -Europe/Malta -Europe/Mariehamn -Europe/Minsk -Europe/Monaco -Europe/Moscow -Europe/Nicosia -Europe/Oslo -Europe/Paris -Europe/Podgorica -Europe/Prague -Europe/Riga -Europe/Rome -Europe/Samara -Europe/San_Marino -Europe/Sarajevo -Europe/Simferopol -Europe/Skopje -Europe/Sofia -Europe/Stockholm -Europe/Tallinn -Europe/Tirane -Europe/Tiraspol -Europe/Uzhgorod -Europe/Vaduz -Europe/Vatican -Europe/Vienna -Europe/Vilnius -Europe/Volgograd -Europe/Warsaw -Europe/Zagreb -Europe/Zaporozhye -Europe/Zurich -Factory -GB -GB-Eire -GMT -GMT+0 -GMT-0 -GMT0 -Greenwich -Hongkong -HST -Iceland -Indian/Antananarivo -Indian/Chagos -Indian/Christmas -Indian/Cocos -Indian/Comoro -Indian/Kerguelen -Indian/Mahe -Indian/Maldives -Indian/Mauritius -Indian/Mayotte -Indian/Reunion -Iran -Israel -Jamaica -Japan -Kwajalein -Libya -MET -Mexico/BajaNorte -Mexico/BajaSur -Mexico/General -MST -MST7MDT -Navajo -NZ -NZ-CHAT -Pacific/Apia -Pacific/Auckland -Pacific/Chatham -Pacific/Chuuk -Pacific/Easter -Pacific/Efate -Pacific/Enderbury -Pacific/Fakaofo -Pacific/Fiji -Pacific/Funafuti -Pacific/Galapagos -Pacific/Gambier -Pacific/Guadalcanal -Pacific/Guam -Pacific/Honolulu -Pacific/Johnston -Pacific/Kiritimati -Pacific/Kosrae -Pacific/Kwajalein -Pacific/Majuro -Pacific/Marquesas -Pacific/Midway -Pacific/Nauru -Pacific/Niue -Pacific/Norfolk -Pacific/Noumea -Pacific/Pago_Pago -Pacific/Palau -Pacific/Pitcairn -Pacific/Pohnpei -Pacific/Ponape -Pacific/Port_Moresby -Pacific/Rarotonga -Pacific/Saipan -Pacific/Samoa -Pacific/Tahiti -Pacific/Tarawa -Pacific/Tongatapu -Pacific/Truk -Pacific/Wake -Pacific/Wallis -Pacific/Yap -Poland -Portugal -PRC -PST8PDT -ROC -ROK -Singapore -Turkey -UCT -Universal -US/Alaska -US/Aleutian -US/Arizona -US/Central -US/East-Indiana -US/Eastern -US/Hawaii -US/Indiana-Starke -US/Michigan -US/Mountain -US/Pacific -US/Pacific-New -US/Samoa -UTC -W-SU -WET -Zulu \ No newline at end of file diff --git a/www/rompr/ui/albumart.js b/www/rompr/ui/albumart.js deleted file mode 100644 index c5fc26c..0000000 --- a/www/rompr/ui/albumart.js +++ /dev/null @@ -1,683 +0,0 @@ -var imagekey = ''; -var imgobj = null; -var nosource = false; -var running = false; -var clickindex = null; -var wobblebottom; -var searchcontent; -var localimages; -var allshown = true; -var stream = ""; -var progress; - -function getNewAlbumArt(div) { - - debug.log("ALBUMART","Getting art in",div); - $.each($(div).find("img").filter(filterImages), function () { - coverscraper.GetNewAlbumArt($(this)); - } - ); - if (running == false) { - running = true; - progress.fadeIn('slow'); - $("#harold").off("click"); - $("#harold").on("click", reset ); - $("#harold").html("Stop Download"); - $('#doobag').off('click'); - } - -} - -// Does anybody ever read the comments in code? -// I hope they do, because most of the comments in my code are entirely useless. - -function reset() { - coverscraper.reset(-1); -} - -// I like badgers - -function start() { - getNewAlbumArt('#wobblebottom'); -} - -function getsmall() { - $('#doobag').html(language.gettext('label_searching')).makeFlasher(); - $("#doobag").off("click"); - $.ajax({ - type: 'GET', - url: 'utils/findsmallimages.php', - dataType: 'json', - timeout: 300000 - }) - .done(function(data) { - $('#doobag').stopFlasher().css('opacity', '0'); - debug.log("SMALL IMAGES","Got List!",data); - for (var i in data) { - $('img[name="'+data[i]+'"]').removeAttr('src').addClass('notexist'); - } - coverscraper.reset($('.notexist:not(.notfound)').length + $('.notfound:not(.notexist)').length); - }) - .fail(function() { - $('#doobag').html("FAILED!").stopFlasher(); - debug.error("SMALL IMAGES","Big Wet Balls"); - }); -} - -function aADownloadFinished() { - if (running == true) { - running = false; - $("#harold").off("click"); - $("#harold").on("click", start ); - $("#doobag").off("click"); - $("#doobag").on("click", getsmall ); - $("#harold").html("Get Missing Covers"); - } - $("#status").html(""); - if (progress) { - progress.fadeOut('slow'); - progress.rangechooser('setProgress', 0); - } -} - -function onWobblebottomClicked(event) { - - var clickedElement = findClickableElement(event); - if (clickedElement.hasClass("clickalbumcover")) { - event.stopImmediatePropagation(); - imageEditor.show(clickedElement); - } - if (clickedElement.hasClass('clickselectartist')) { - event.stopImmediatePropagation(); - var a = clickedElement.attr("id"); - $(".clickselectartist").filter('.selected').removeClass('selected'); - clickedElement.addClass('selected'); - if (a == "allartists") { - $(".cheesegrater").show(); - if (!allshown) { - boogerbenson(); - boogerbenson(); - } - } else { - $(".cheesegrater").filter('[name!="'+a+'"]').hide(); - $('[name="'+a+'"]').show(); - } - } -} - -function findClickableElement(event) { - - var clickedElement = $(event.target); - // Search upwards through the parent elements to find the clickable object - while (!clickedElement.hasClass("clickable") && - clickedElement.prop("id") != "wobblebottom" && - clickedElement.prop("id") != "searchcontent") { - clickedElement = clickedElement.parent(); - } - return clickedElement; - -} - -// It's not raining - -function boogerbenson() { - if (allshown) { - $("img", "#wobblebottom").filter( onlywithcovers ).parent().parent().hide(); - $("#finklestein").html(language.gettext("albumart_showall")); - $(".albumsection").filter( emptysections ).hide(); - $(".bigholder").filter( emptysections2 ).hide(); - } else { - $(".bigholder").show(); - $(".albumsection").show(); - $("img", "#wobblebottom").parent().parent().show(); - $("#finklestein").html(language.gettext("albumart_onlyempty")); - } - allshown = !allshown; -} - -function onlywithcovers() { - if ($(this).hasAttr('src')) { - return true; - } else { - return false; - } -} - -function filterImages() { - if ($(this).hasClass('playlistimage')){ - return false; - } - if ($(this).hasAttr('src')) { - return false; - } else { - return true; - } -} - -// This comment is useless - -function emptysections() { - var empty = true; - $.each($(this).next().find('.albumimg'), function() { if (!$(this).is(':hidden')) { empty = false } }); - return empty; -} - -function emptysections2() { - var empty = true; - $.each($(this).find('.albumimg'), function() { if (!$(this).is(':hidden')) { empty = false } }); - return empty; -} - -function sections_without_missing_images() { - var ne = $(this).find('img.notexist'); - var nf = $(this).find('img.notfound'); - if (ne.length + nf.length > 0) { - return false; - } - return true; -} - -function sections_with_missing_images() { - var ne = $(this).find('img.notexist'); - var nf = $(this).find('img.notfound'); - if (ne.length + nf.length > 0) { - return true; - } - return false; -} - -$(document).ready(function () { - - debug.log("ALBUMART","Document is ready"); - prefs.rgbs = null; - prefs.maxrgbs = null; - prefs.setTheme(prefs.theme); - progress = $('#progress'); - progress.rangechooser({range: 100, startmax: 0, interactive: false}); - $(window).on('resize', wobbleMyBottom ); - $("#harold").on('click', start ); - $("#doobag").on('click', getsmall ); - $("#finklestein").on('click', boogerbenson ); - wobblebottom = $('#wobblebottom'); - wobbleMyBottom(); - $('#artistcoverslist').mCustomScrollbar({ - theme: "light", - scrollInertia: 300, - contentTouchScroll: 25, - mouseWheel: { - scrollAmount: 40, - }, - advanced: { - updateOnContentResize: true, - updateOnImageLoad: false, - autoScrollOnFocus: false, - autoUpdateTimeout: 500, - } - }); - $('#coverslist').mCustomScrollbar({ - theme: "light", - scrollInertia: 200, - contentTouchScroll: 25, - mouseWheel: { - scrollAmount: 20, - }, - advanced: { - updateOnContentResize: true, - updateOnImageLoad: false, - autoScrollOnFocus: false, - autoUpdateTimeout: 500, - } - }); - document.body.addEventListener('drop', function(e) { - e.preventDefault(); - }, false); - wobblebottom.on('click', onWobblebottomClicked); - $('.droppable').on('dragenter', dragEnter); - $('.droppable').on('dragover', dragOver); - $('.droppable').on('dragleave', dragLeave); - $('.droppable').on('drop', handleDrop); - $(document).on('mouseenter', '.clearbox', makeHoverWork); - $(document).on('mouseleave', '.clearbox', makeHoverWork); - $(document).on('mousemove', '.clearbox', makeHoverWork); - $(document).on('click', '.clearbox.enter', makeClearWork); - -}); - -$(window).on('load', function () { - debug.log("ALBUMART","Document has loaded"); - coverscraper = new coverScraper(1, true, true, true); - var count = 0; - $.each($(document).find("img").filter(filterImages), function() { - count++; - $(this).addClass("notexist"); - }); - $('.cheesegrater').filter(sections_with_missing_images).each(function() { - $(this).children('.albumsection').find('button').show(); - }); - $('#poobag').prop('checked', false); - $('#dinkytoy').prop('checked', false); - coverscraper.toggleScrolling(false); - coverscraper.toggleLocal(false); - $("#totaltext").html(numcovers+" "+language.gettext("label_albums")); - coverscraper.reset(albums_without_cover); - coverscraper.updateInfo(albums_without_cover - count); - $("#status").html(language.gettext("albumart_instructions")); -}); - -function dragEnter(ev) { - evt = ev.originalEvent; - evt.stopPropagation(); - evt.preventDefault(); - $(ev.target).addClass("highlighted"); - return false; -} - -function dragOver(ev) { - evt = ev.originalEvent; - evt.stopPropagation(); - evt.preventDefault(); - return false; -} - -function dragLeave(ev) { - evt = ev.originalEvent; - evt.stopPropagation(); - evt.preventDefault(); - $(ev.target).removeClass("highlighted"); - return false; -} - -function handleDrop(ev) { - debug.log("ALBUMART","Dropped",ev); - evt = ev.originalEvent; - $(ev.target).removeClass("highlighted"); - imgobj = $(ev.target); - imagekey = imgobj.attr("name"); - nosource = (imgobj.hasClass('notfound') || imgobj.hasClass('notexist')); - clickindex = null; - dropProcessor(ev.originalEvent, imgobj, coverscraper, uploadComplete, searchFail); -} - -var imageEditor = function() { - - var start = 1; - var position = null; - var bigdiv = null; - var bigimg = new Image(); - var currparent = null; - var currhighlight = null; - var currname = null; - var current = "g"; - var nureek = "https://www.googleapis.com/customsearch/v1?key="+prefs.google_api_key+"&cx="+prefs.google_search_engine_id+"&searchType=image&alt=json"; - bigimg.onload = function() { - imageEditor.displayBigImage(); - } - - return { - - show: function(where) { - var newpos = where.parent().parent(); - if (where.attr('name') == currname) { - imageEditor.close(); - return true; - } - if (currparent !== null) { - imageEditor.close(); - } - currname = where.attr('name'); - bigdiv = $('
    ', {id: "imageeditor", class: "containerbox highlighted dropshadow"}).appendTo(newpos); - bigdiv.on('click', imageEditor.onGoogleSearchClicked); - start = 1; - currhighlight = where.parent(); - currhighlight.addClass('highlighted'); - currparent = newpos; - - bigimg.src = ""; - bigdiv.empty(); - imgobj = where; - imagekey = imgobj.attr('name'); - nosource = (imgobj.hasClass('notfound') || imgobj.hasClass('notexist')); - var phrase = decodeURIComponent(imgobj.parent().find('input[name="searchterm"]').val()); - var path = imgobj.parent().find('input[name="albumpath"]').val(); - debug.log('ALBUMART','Local Path Is',path); - - bigdiv.append($('
    ', { id: "searchcontent" })); - bigdiv.append($('
    ', { id: "origimage"}).append($("", { id: 'browns' }))); - - $("#searchcontent").append( $('
    ', {id: "editcontrols", class: "clearfix fullwidth"}), - $('
    ', {id: "gsearch", class: "noddy fullwidth invisible"}), - $('
    ', {id: "fsearch", class: "noddy fullwidth invisible"}), - $('
    ', {id: "usearch", class: "noddy fullwidth invisible"})); - - $("#"+current+"search").removeClass("invisible"); - - $("#gsearch").append( $('
    ', {id: "brian", class: "fullwidth"}), - $('
    ', {id: "searchresultsholder", class: "fullwidth"})); - - $("#searchresultsholder").append($('
    ', {id: "searchresults", class: "clearfix fullwidth"})); - - var fdiv = $('
    ', {class: "fullwidth"}).appendTo('#usearch'); - var uform = $('
    ', { id: 'uform', action: 'getalbumcover.php', method: 'post', enctype: 'multipart/form-data' }).appendTo(fdiv); - uform.append( $('', { id: 'uploadkey', type: 'hidden', name: 'key', value: '' }), - $('', { id: 'uploadartist', type: 'hidden', name: 'artist', value: '' }), - $('', { id: 'uploadalbum', type: 'hidden', name: 'album', value: '' }), - ); - var fb = $('
    ', {class: 'filebutton textcentre'}).appendTo(uform); - var inp = $('', { name: 'ufile', type: 'file', id: 'ufile', class: 'inputfile'}).appendTo(fb); - inp.on('change', function() { - var filename = $(this).val().replace(/.*(\/|\\)/, ''); - $(this).next().html(filename); - $(this).parent().next('input[type="button"]').fadeIn('fast'); - }); - var lab = $('