mrkipling / maraschino Goto Github PK
View Code? Open in Web Editor NEWA front-end for HTPCs
License: MIT License
A front-end for HTPCs
License: MIT License
It would be freaking awesome to be able to do searches like it is with standard maraschino and be able to find that one and only nzb on nzbmatrix click and make it downlaod through sabnzbd.
This is the only feature im mossing in my mobile experience
Anyway keep up the good work :)
First of all, excellent work on this! It's been just the project to bring my HTPC solution together.
I recently updated to the latest commit, and none of the banners are showing in the Sickbeard module for either the compact or regular view. I did a "Copy Image Location" and it came back with:
http://mydomain:7000/sickbeard/get_banner/95011
That is the correct show ID from within Sickbeard, but when I paste this into a URL bar, I get no image back.
Any troubleshooting steps to take?
Would it be possible to add the ability to select the category from sabnzbd when sending something to sabnzbd in the search?
I have an XBMC server running on another machine. I have Maraschino on a different server. I can add most of the objects (applications, sickbeard, couchpotato etc..) but when I add Recently added movies or episodes, it says " There was a problem connecting to XBMC" I didn't see any connection information for XBMC. Does XBMC have to be on the same server as Maraschino?
Nevermind
Removed the http:// from the host/ip address.
By adding the following to the initd you could add an update functionality.
update)
echo "Updating $DESC"
echo " * Stoping $DESC"
start-stop-daemon --stop --pidfile $PID_FILE
sleep 15
echo " * Pulling $DESC"
cd $APP_PATH
git pull https://github.com/mrkipling/maraschino.git master
cd ~
echo " * Starting $DESC"
start-stop-daemon -d $APP_PATH -c $RUN_AS --start --background --pidfile $PID_FILE --make-pidfile --exec $DAEMON -- $DAEMON_OPTS
;;
I have searched in maraschino's code on how you made the cog-item which goes to configuration mode.
Wanted to do the same for a shutdown/restart function, but then hovering in de topright section of maraschino.
I didn't found the examples on how you did that cog-hover thing, so I can't make it myself (python/js newbie)...
Someone or you interested in creating a shutdown/restart function? Maraschino really needs a clean shutdown/restart function.
_First the pictures to show what I'm looking for:_
(Please scroll past the pictures for my question)
_And now the real question_
As I'm using Maraschino on tablets (IOS and Android), I made a small thingy so I can easily jump to and from Maraschino and other applications...
This is done in plain html, as I'm using Nginx as reverse proxy (Just download nginx from somewhere and put the nginx.conf at the bottom of the post in the conf directory... Also put the two html files in the html directory --!! Check the URLs and port numbers inside the conf file and menubar.html to see if they match your config)..
For this I'm using two simple html files (at the end of the post), but the problem is that the menu items have to be hardcoded in menubar.html, and you have to serve them through a webserver of some kind (which in my case is nginx)..
My question is if a menubar like this can be incorporated in Maraschino.
This would basically mean that the applications tab can also be added as a topframe..
Thanks in advance,
Best regards, Mark
_index.html_
<html>
<title>Maraschino</title>
<frameset rows="20px,*" frameborder="0" border="0" framespacing="0">
<frame src="menubar.html" name="navigator" noresize scrolling="no">
<frame src="http://192.168.0.100/#" name="main" noresize scrolling="auto">
</frameset>
</frameset>
<noframes>
<p>Your browser does not support frames</p>
</noframes>
</html>
_menubar.html_
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="icon" type="image/png" href="/favicon.ico" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Maraschino</title>
<style type="text/css">
#nav {
font-family: Verdana, Geneva, sans-serif;
font-size: 11px;
color: #B0B0B0;
background-color: #262626;
padding: 0px;
margin-left: 0;
margin-right: 0;
height: 20px;
position: absolute;
left: 0px;
top: 0px;
width: 100%;
}
#nav a {
font-family: Verdana, Geneva, sans-serif;
color: #B0B0B0;
text-decoration: none;
background-color: #262626;
display: block;
height: 20px;
padding-right: 12px;
padding-left: 12px;
float: left;
line-height: 18px;
font-size: 10px;
border-top-width: thin;
border-right-width: thin;
border-bottom-width: thin;
border-left-width: thin;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
}
#nav a:hover {
color: #FFCE0D;
background-color: #4D4D4D;
font-size: 10px;
text-shadow: rgba(255,255,255,1) 0px 1px 10px;
font-weight: normal;
}
body {
}
</style>
<script type="text/javascript">
function navigator_Go(url) {
parent.main.location=(url); // This technique is almost exactly the same as a full <a> page refresh, but it prevents Mobile Safari from jumping out of full-screen mode
}
</script>
<body>
<div id="nav" >
<a href="javascript:navigator_Go('http://192.168.0.100/');">Maraschino</a>
<a href="javascript:navigator_Go('http://192.168.0.100/sabnzbd/');">SABnzbd+</a>
<a href="javascript:navigator_Go('http://192.168.0.100/sickbeardtv/');">Sickbeard</a>
<a href="javascript:navigator_Go('http://192.168.0.100/couchpotato');">CouchPotato</a>
<a href="javascript:navigator_Go('http://192.168.0.100/gui');">uTorrent</a>
<a href="javascript:navigator_Go('http://192.168.0.100/headphones');">HeadPhones</a>
</div>
</body>
</html>
_nginx.conf_
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name hpstorage hpstorage.local;
location / {
root html;
index index.html;
}
##################
#Maraschino
##################
#location / {
#include proxy.conf;
#proxy_pass http://localhost:7000;
#}
location /mobile {
include proxy.conf;
proxy_pass http://localhost:7000/mobile;
}
##################
# SABnzbd+
##################
location /sabnzbd {
include proxy.conf;
proxy_pass http://localhost:8085;
}
##################
# uTorrent
##################
location /gui {
include proxy.conf;
proxy_pass http://localhost:8080/gui;
}
##################
# SickBeard
##################
location /sickbeard {
include proxy.conf;
proxy_pass http://localhost:8081/sickbeard;
}
##################
# HeadPhones
##################
location /headphones {
include proxy.conf;
proxy_pass http://localhost:8083/headphones;
}
##################
# CouchPotatoServer
##################
location /couchpotato {
include proxy.conf;
proxy_pass http://localhost:5050/couchpotato;
# rewrite ^/couchpotato/?$ /couchpotato/movie/ permanent;
}
##################
#charset koi8-r;
#access_log logs/host.access.log main;
# location / {
# root html;
# index index.html index.htm;
# }
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
No doubt, I won't be the last person to seek Boxee integration.
Relevant (python) example: https://github.com/cold12/Trakt-for-Boxee
Documentation: http://developer.boxee.tv/
Let's get the ball rolling shall we?
It appears that headphones is no longer loading album images in either the mobile or standard view?
The only thing I am finding from headphones in the log is the standard "Fetching upcoming albums" dialog.
I believe this happened with a headphones update about 10 days ago, wanted to let you magicians know!
First off, very nice app! Indeed the cherry on top :)
I've installed Maraschino on a windows 7 machine using git. Everything works fine, except for the images. The url I get is;
I looked at some of the closed issues but I couldn't find a fiiting solution, maybe someone here can help me!
Hello All,
I have a small question regarding the applications module:
Is there a way to have the applications to open in a new tab/window or in a frame, so I can jump back to Maraschino instantly?
Thanks in advance,
best regards, Mark
Is there a way of having maraschino sync with a mysql database (for recentlya added views) as my PC with xbmc isnt always on but my nas with mysql database is always on.
It would be great as we have a package for installing maraschino on synology nas
I've upgrade to the latest version (clean git clone) and getting the following error - kind of stuck here:
Traceback (most recent call last):
File "/home/david/.maraschino/lib/flask/app.py", line 1518, in __call__
return self.wsgi_app(environ, start_response)
File "/home/david/.maraschino/lib/flask/app.py", line 1506, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/home/david/.maraschino/lib/flask/app.py", line 1504, in wsgi_app
response = self.full_dispatch_request()
File "/home/david/.maraschino/lib/flask/app.py", line 1264, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/home/david/.maraschino/lib/flask/app.py", line 1262, in full_dispatch_request
rv = self.dispatch_request()
File "/home/david/.maraschino/lib/flask/app.py", line 1248, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/david/.maraschino/maraschino/tools.py", line 30, in decorated
return f(*args, **kwargs)
File "/home/david/.maraschino/Maraschino.py", line 71, in index
module.static = module_info['static']
TypeError: 'NoneType' object is unsubscriptable
all is on the title
Is it possible to implement an ability like urlbase/web_root/http_root to enable the ability of apaches mod_proxy.
ProxyPass /maraschino https://localhost:<port>/maraschino
ProxyPassReverse /maraschino https://localhost:<port>/maraschino
On a vanilla xbmc-buntu (oneiric server/64bit) install the remote keyboard repeats up/down endlessly. It accepts other keys (like esc makes it going back one page) but keeps repeating up/down after that.
Ah wait, I see what happens:
turn this into a feature:
If I hold down the down-button for a while, it cuts it up in keypresses with a .3 sleep in it.
Can it for example made that if I press down longer, it works as a pagedown instead of multiple downs (or as for example max 10 downs) that take much longer then when pressing down on the local keyboard?)
With this delay I can never be sure when it will stop, and if the selection I want is selected by the send presses I can't stop it, I have to wait until all down-presses are done, then press up to get back to my selection. If I press up while it is still going down it will send that command in between.
Hi All,
After the updates from the last 24 hours, trying to play something through Maraschino Mobile (XBMC) doesn't work anymore.
I lost the stop and play/pause button, and selecting an item doesn't do anything..
Thanks in advance,
best regards, Mark
update
After the last clone everything seems to work again..
Hello All,
Thanks for the new improvements (filter)...
Unfortunately after the update last night, the WoL feature (media library widget) doesn't seem to work anymore.
Is there also a possibility to have the WoL icon in the media library widget to visible at anytime?
Thanks in advance,
best regards, Mark
I like the option to add multiple utorrent modules.
I use one utorrent client for movies and one for series.
Thanks.
when i refresh the page without refreshing cache the sickbeard images become broken. ctrl+f5 refresh brings them back.
here is the data returned from visiting the broken link.
{
"data": {
"args": [],
"error_msg": "",
"kwargs": {
"tvdbid": "219341"
}
},
"message": "SickBeard encountered an internal error! Please report to the Devs",
"result": "fatal"
}
i will try to get this to the sickbeard devs as suggested in the error, but im not sure if this is a sickbeard issue or maraschino issue.
Not sure if this is a limitation in both of those apps, or a problem with maraschino.
If adding the headphones and CP modules, neither will load unless a username and password have been set inside the respective apps. I had not set either because the apps reside on my server that is only accessible inside my local network. When trying to set up the modules I kept getting "No Json (something) can be decoded" for headphones and couchpotato would give me a search box. Neither would show any information.
I added a username and password to both apps and input those fields in maraschino, they both load correctly.
I guess the question is are those fields required to be accessed by maraschino, or is it simply maraschino trying to pass the empty fields that is tripping things up?
Suspend, Reboot and Shutdown don't work in media library module, only update and clean library are working.
I wish I didn't update to the latest version because right now all hell breaks lose here. Maraschino is not working at all..
I've updated to try Gugahoi's remote control wich (I have to say it) works flawlessly!
Apart from that, the rest of Maraschino seems to be broken right now.
Last but not least, the sickbeard images are again(!) not working in Chrome: http://piclair.com/data/fldvo.jpg
It's a sad truth that I didn't make a backup before cloning the latest master. I understand that you guys do your best to develop Maraschino and to create new features.
But before you make any new features, I'd like to ask you to smash some bugs out of this program. Because right now, I can't work with it :(
Is it working for you? It just doesn't show for me. I'll have a poke around with it properly when I get the chance - will be tackling each module in turn.
When follow the steps as described in your FAQ, I get an empty grey background, instead of my custom background. This happens on the previous version and also on the latest version of Maraschino.
Is it possible to fix this issue in the next version of Maraschino?
Thx in advance!
Recently Added images are not displaying.
To get them working I must, right click on broken image "open in new window" then type in xbmc username/password, then images are displayed correctly until I clear my browser settings.
I have added the username/password to "server settings" , but this does not help.
Could you please add a command line option to force maraschino to listen on a specified hostname or IP?
example: ./Maraschino.py --host=192.168.1.101 --port=81 -d
The current Maraschino favicon doesn't have a transparent background. Your project homepage however does use a good favicon.
Could you please replace the current maraschino app favicon with this one: http://www.maraschinoproject.com/static/images/favicon.ico
Thank you for the awesome project!
Hi All,
I really like the mobile interface, but have a small number of questions:
Thanks in advance,
best regards, Mark
ps. I'm not lazy... I tried to solve these issues myself, but no luck yet..
It would be great if we could pause sabnzbd for a given time
Hi,
Thanks for this module....
However I do have a problem when using this module when I'm using a webroot. Nothing happens, and the log stays empty.
Any idea?
Thanks in advance,
best regards, Mark
After the recent update I tired putting in custom disk name and after I hit apply I have no disk and no add disk button. After restart of Maraschino still nothing. I get initializing if I go into the setting.
When using the Sickbeard module, the weekday and time show up next to the episode description, (ex: Sunday 10:00pm). Would it be acceptable to allow the month/date to show up as well? (ex: Sunday July 13 10:00pm)
Hi,
Does anyone has problems with the weather module after the last week?
Thanks in advance,
best regards, Mark
I tried writing a little module (rss_reader) and noticed that a trailing / is added to the URL when the module is polling. Apparently this leads to a 404 and the polling is not successful. This also happens with the weather module but not with the currently_playing module.
I actually found an old forum entry that discussed this problem: http://forums.maraschinoproject.com/showthread.php?tid=14
Here's a short part of my log output:
17:20:32 :: INFO :: 127.0.0.1 - - [01/Aug/2012 17:20:32] "GET /xhr/rss_reader HTTP/1.1" 200 -
...
17:24:15 :: INFO :: 127.0.0.1 - - [01/Aug/2012 17:24:15] "GET /xhr/currently_playing HTTP/1.1" 200 -
17:24:20 :: INFO :: 127.0.0.1 - - [01/Aug/2012 17:24:20] "GET /xhr/weather/ HTTP/1.1" 404 -
17:24:20 :: INFO :: 127.0.0.1 - - [01/Aug/2012 17:24:20] "GET /xhr/rss_reader/ HTTP/1.1" 404 -
I narrowed the problem down to the get_module() function in index.js. Sadly my JavaScript skills are very limited, so I hope that someone else can find the bug here?!
Whenever I run manage -> Check for updates, I get "Maraschino is up to date".
When I check the logs I see this
Oct-15 04:30:47 :: INFO :: UPDATER :: Checking for updates
Oct-15 04:30:47 :: INFO :: UPDATER :: Unknown version. Please run the updater
Oct-15 04:31:08 :: INFO :: UPDATER :: Checking for updates
Oct-15 04:31:09 :: INFO :: UPDATER :: Unknown version. Please run the updater
I tried to pastebin the log, but I found this after a bit of time.
Oct-15 04:31:54 :: INFO :: LOG :: Log failed to upload - Bad API request, maximum paste file size exceeded
This is running on my freenas server. I have git installed and it is available in /bin and /usr/local/bin. Can I run the updater from command line or is there a way I can pass the version information?
Thanks
I'm running my SABnzbd+ as a service on HTTPS, but I have to manually edit the sabnzbd.py file in the modules folder to get it to HTTPS. Is it possible to make it an option in the module itself? :)
The author didn't do routing right with Flask. They forgot to use url_for instead of hardcoding all the links, and thus the site doesn't work anywhere but at the web root, which is inconvenient.
Hi All,
Does any of you know how I can boost the performance of Maraschino a little bit?
At the moment I'm running from source on Windows2003.
The loading of the Sickbeard module takes always a while (2-8 seconds) while accessing Sickbeard directly is rather fast..
Thanks in advance,
best regards, Mark
Can there be a port checked implemented like it is done in the sickbeard module? This check is also in my pull request #180.
11:04:06 :: DEBUG :: CouchPotato :: EXCEPTION -- nonnumeric port: 'None'
i set up a testing branch to test a few things but i got a strange error when trying to create the database. seems maraschino doesnt like "\t"..
When web_root is in sickbeard Maraschino cannot get the information from sickbread resuling in a http 500 code.
When adding this web_root to url in plugins/sickbeard.py it is working again.
Seems the new script launcher module has simply stopped responding for me.. It no longer wants to launch scripts, edit existing scripts, or add new ones. When I click either of those options maraschino just jumps to the top of the page and shows no additional activity. I checked the log but there isn't any useful information, or even an indication that something failed.
Just wanted to give a heads up!
Hi All,
I don't think this is the proper way to ask, but I was wondering where I should post the following question:
For GUI development are you using plain files, or something like ironpython or farpy?
I'd like to contribute, but I'm not sure what the easiest way is...
Thanks in advance,
best regards, Mark
I noticed this was implemented but for me the menu stays always open.
For the past few day I have been getting an error when I want to update. The only thing I can do right now is to login to my server and reboot it from there and then update. I am currently using Ubuntu.
Sep-08 12:40:28 :: ERROR :: UPDATER :: Update failed
Sep-08 12:40:28 :: DEBUG :: UPDATER :: Removing maraschino-update
Sep-08 12:40:28 :: DEBUG :: UPDATER :: Removing maraschino.tar.gz
Sep-08 12:40:28 :: INFO :: UPDATER :: Removing update files
Sep-08 12:40:28 :: WARNING :: UPDATER :: Failed to overwrite old files
Sep-08 12:40:28 :: DEBUG :: UPDATER :: Overwriting old files
Sep-08 12:40:27 :: DEBUG :: UPDATER :: Extracting maraschino.tar.gz
Sep-08 12:40:27 :: DEBUG :: UPDATER :: Writing new hash to Version.txt
Sep-08 12:40:25 :: DEBUG :: UPDATER :: Downloading update file to maraschino.tar.gz
Sep-08 12:40:04 :: ERROR :: UPDATER :: Update failed
Sep-08 12:40:04 :: DEBUG :: UPDATER :: Removing maraschino-update
Sep-08 12:40:04 :: DEBUG :: UPDATER :: Removing maraschino.tar.gz
Sep-08 12:40:04 :: INFO :: UPDATER :: Removing update files
Sep-08 12:40:04 :: WARNING :: UPDATER :: Failed to overwrite old files
Sep-08 12:40:04 :: DEBUG :: UPDATER :: Overwriting old files
Sep-08 12:40:04 :: DEBUG :: UPDATER :: Extracting maraschino.tar.gz
Sep-08 12:40:04 :: DEBUG :: UPDATER :: Writing new hash to Version.txt
Sep-08 12:40:01 :: DEBUG :: UPDATER :: Downloading update file to maraschino.tar.gz
Sep-08 12:34:19 :: INFO :: Restarting Maraschino with: ['/usr/bin/python', u'Maraschino.py', '--port=7000']
Add support for the Deluge torrent server
I tried for hours, but I can't daemonize the process when starting a cherrypyserver. I tried with daemoncode-snippets found around the net and other program's, but it won't work. It seems to fork too soon or something..
Maybe someone else can solve this? Would like to use the daemon-option together with pidfile.
This is what I got so far: https://gist.github.com/1556605
Compatible with my repo, branch external, but I want to push it to mrkiplings if it works.
As far as I could see cherrypywsgi server doesn't have a builtin daemonize option like cherrypy itself does?
Error when starting:
mars@laptop:~/maraschino$ python Maraschino.py --daemon
Traceback (most recent call last):
File "Maraschino.py", line 33, in
from modules.applications import *
RuntimeError: not holding the import lock
Traceback (most recent call last):
File "Maraschino.py", line 33, in
from modules.applications import *
RuntimeError: not holding the import lock
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.