GithubHelp home page GithubHelp logo

tautulli / tautulli Goto Github PK

View Code? Open in Web Editor NEW
5.4K 223.0 581.0 102.54 MB

A Python based monitoring and tracking tool for Plex Media Server.

Home Page: https://tautulli.com

License: GNU General Public License v3.0

Python 89.36% Shell 0.04% HTML 6.95% CSS 1.07% JavaScript 2.48% Dockerfile 0.01% NSIS 0.05% Batchfile 0.01% C 0.04%
plex plexpy python monitoring notifications statistics stats analytics tautulli

tautulli's Introduction

Tautulli

A python based web application for monitoring, analytics and notifications for Plex Media Server.

This project is based on code from Headphones and PlexWatchWeb.

Features

  • Responsive web design viewable on desktop, tablet and mobile web browsers.
  • Themed to complement Plex/Web.
  • Easy configuration setup (no separate web server required).
  • Monitor current Plex Media Server activity.
  • Fully customizable notifications for stream activity and recently added media.
  • Top statistics on home page with configurable duration and measurement metric.
  • Global watching history with search/filtering & dynamic column sorting.
  • Full user list with general information and comparison stats.
  • Individual user information including devices IP addresses.
  • Complete library statistics and media file information.
  • Rich analytics presented using Highcharts graphing.
  • Beautiful content information pages.
  • Full sync list data on all users syncing items from your library.
  • And many more!!

Preview

Full preview gallery available on our website

Tautulli Homepage

Installation

Python Docker Pulls Docker Stars Downloads

Status Branch: master Branch: beta Branch: nightly
Release Release@master
Release Date@master
Release@beta
Commits@beta
Last Commits@nightly
Commits@nightly
Docker Docker@master
Docker Build@master
Docker@beta
Docker Build@beta
Docker@nightly
Docker Build@nightly
Snap Snap@master
Snap Build@master
Snap@beta
Snap Build@beta
Snap@nightly
Snap Build@nightly
Installer Windows@master
MacOS@master
Installer Build@master
Windows@beta
MacOS@beta
Installer Build@beta
Installer Build@nightly

Read the Installation Guides for instructions on how to install Tautulli.

Support

Wiki Discord Reddit Plex Forums Issues

If you think you've found a bug in Tautulli make sure you have read the FAQ first to make sure it hasn't been covered by one of the questions there. If your problem isn't answered in the FAQ try the following first:

  • Update to the latest version of Tautulli.
  • Turning your device off and on again.
  • Analyzing your logs, you just might find the solution yourself!
  • Using the search function to see if this issue has already been reported/solved.
  • Checking the Wiki for Installation instructions and reading the FAQs.
  • For basic questions try asking on Discord, Reddit, or the Plex Forums first before opening an issue.

If nothing has worked:

  1. Please check the issues tracker to see if someone else has already reported the bug.
  2. If this is a new bug, open a bug report on the issues tracker.
  3. Provide a clear title to easily help identify your problem.
  4. Use proper Markdown syntax to structure your post (i.e. code/log in code blocks).
  5. Make sure to fill out the required information on the issue template.
  6. Close your issue when it's solved! If you found the solution yourself please comment so that others benefit from it.

Feature Requests

  1. Pleases check the issues tracker to see if someone else has already requested the feature. If a similar idea has already been requested, give it a thumbs up. Do not comment with +1 or something similar as it creates unnecessary spam.
  2. If this is a new feature request, open a feature request on the issues tracker.

License

License

This is free software under the GPL v3 open source license. Feel free to do with it what you wish, but any modification must be open sourced. A copy of the license is included.

This software includes Highsoft software libraries which you may freely distribute for non-commercial use. Commerical users must licence this software, for more information visit https://shop.highsoft.com/faq/non-commercial#non-commercial-redistribution.

tautulli's People

Contributors

abiacco avatar aboron avatar alotufo avatar arcanemagus avatar brianinaz avatar capruro avatar chrisophogus avatar dependabot[bot] avatar dotsam avatar drzoidberg33 avatar felixbuenemann avatar hellowlol avatar herby2212 avatar johnnyking94 avatar jonnywong16 avatar joshua1337 avatar jroyal avatar nalipaz avatar onedr0p avatar pbaboe avatar richipargo avatar samip5 avatar samwiseg0 avatar senepa avatar sheigutn avatar themeancanehdian avatar tommatheussen avatar wcomartin avatar xusbadia avatar zobe123 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tautulli's Issues

[REQUEST] A few changes to the History section

  1. Show cover art along with the text title. (maybe a toggle to turn cover art on/off)
  2. Make IP address clickable for each history item, showing the same IP information available in the Users section for each individual stream.
  3. Show the actual viewing date AND time in the time column.

"Uncaught exception" when trying to import from PlexWatch, using latest update of PlexPy

I started from scratch just to test few things out and when trying to import the "plexwatch.db" file I get an "Uncaught exception." The on screen logging says as follows:

08-Aug-2015 00:14:06 - ERROR :: CP Server Thread-10 : PlexPy Importer :: Uncaught exception.   
08-Aug-2015 00:14:24 - ERROR :: CP Server Thread-2 : PlexPy Importer :: Uncaught exception.   
08-Aug-2015 00:15:44 - ERROR :: CP Server Thread-7 : PlexPy Importer :: Uncaught exception.   
08-Aug-2015 00:16:53 - ERROR :: CP Server Thread-8 : PlexPy Importer :: Uncaught exception.

I have tried to import from other locations too but still the same. Any other information if required let me know will share.

Broken after commit 69403dbf07dd597652238d58d39af2c2d95635dd

I just updated to commit 69403db

After that I got this on my home page: There was an error communicating with your Plex Server. Please check your settings.

Nothing in the settings menu seems to work. When I hit save on PMS it even says Server Verified!

I rather not throw away my database.... Bug or is this totaly my fault?

PS: When I hit this link: There was an error communicating with your Plex Server. Please check your settings. I land on the old settings page. Don't think that is supposed to be ;)

DatabaseError: file is encrypted or is not a database

I get this error on Windows. Tried the advice in the troubleshooting but the downloadable sqllite3 dll doesn't seem like a drop in replacement and throws an error. Any other ideas on what might be causing this?

Include Changelog

Can you include somewhere a changelog of all updated items during a per day/period

I like how sickrage does it, see example

Image and video hosting by TinyPic

Option to send user an email

It would be great if we could send the user an email directly from the user's stat page. Barring that, can we get some more user info put into their stat page, such as email, or phone number, etc. Some sort of contact info, so if we see they are having issues, we can contact them to help resolve them.

I know this would have to be entered in individually on a per user basis, but it could save a lot of time for the admin.

[REQUEST] Sync status

Would it be possible to add the sync status of the item currently being synced? Right now, all I can do is look at my process manager and see that "Plex New Transcoder.exe" is running.

Also, can you add to the "Synced Items" menu a "date synced" organization option?

Thanks!

Plex Logs Parser

I was having some issues with the Log Parser not parsing certain lines correctly. Some log lines seem to come out with only partial data for some reason. Without solving the problem of why certain lines were not getting read correctly, this solved the issue for me.

for i in log_lines:
        try:
            log_time = i.split(' [')[0]
            log_level = i.split('] ', 1)[1].split(' - ',1)[0]
            log_msg = i.split('] ', 1)[1].split(' - ',1)[1]
            full_line = [log_time, log_level, log_msg]
            clean_lines.append(full_line)
        except:
            pass

UnboundLocalError: local variable 'xml_parse' referenced before assignment

Just trying out some of the new features. Cool stuff.

Getting this error loading sync lists and when hitting refresh on the users list:

Traceback (most recent call last):
  File "lib/cherrypy\_cprequest.py", line 670, in respond
    response.body = self.handler()
  File "lib/cherrypy\lib\encoding.py", line 217, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "lib/cherrypy\_cpdispatch.py", line 61, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "C:\plexpy\plexpy\webserve.py", line 934, in get_sync
    result = plex_tv.get_synced_items(machine_id=server_id['machine_identifier'], user_id=user_id)
  File "C:\plexpy\plexpy\plextv.py", line 292, in get_synced_items
    xml_head = xml_parse.getElementsByTagName('SyncList')
UnboundLocalError: local variable 'xml_parse' referenced before assignment
Traceback (most recent call last):
  File "lib/cherrypy\_cprequest.py", line 670, in respond
    response.body = self.handler()
  File "lib/cherrypy\lib\encoding.py", line 217, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "lib/cherrypy\_cpdispatch.py", line 61, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "C:\plexpy\plexpy\webserve.py", line 907, in refresh_users_list
    result = plex_tv.get_full_users_list()
  File "C:\plexpy\plexpy\plextv.py", line 238, in get_full_users_list
    xml_head = xml_parse.getElementsByTagName('user')
UnboundLocalError: local variable 'xml_parse' referenced before assignment

Get working inside FreeNAS Jail

I'll try to put some time into figuring this out later tonight, on attempting to launch this in the same jail plexWatch runs inside I get the following error.

Traceback (most recent call last):
  File "PlexPy.py", line 23, in <module>
    from plexpy import webstart, logger
  File "/usr/local/bin/plexpy/plexpy/__init__.py", line 24, in <module>
    import sqlite3
  File "/usr/local/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
    from dbapi2 import *
  File "/usr/local/lib/python2.7/sqlite3/dbapi2.py", line 28, in <module>
    from _sqlite3 import *
ImportError: No module named _sqlite3

Looks like a missing required module to me.

Reboot NAS and configuration goes away.

This is MikeG from the Plex Forums. Every time I reboot my NAS, the config for PlexPy totally disappears. Default ports, server addresses, log file locations all go away. Today, after a reboot, the only way to get back into PlexPy was to delete the config file completely and have the script make a new one. Even after doing that, the ports I had setup still didn't work. I made a new port forward rule on the router, for the external port I want to use, pointing to 8181.

I checked the file contents and creation dates for config.ini and they were the same as when I had last edited the file. I think somehow, when the script runs, the first time after reboot, it thinks there is no config file and tries to make one, and somehow fails.

All-in-all, you are making a great app here. I hope to see the work you are doing get due recognition!

Missing platform icon

Just a heads up, the server seems to be missing the platform icon for Xbox. PlexPy just shows a broken image icon. The Plex Server does have an icon for it. Thanks!

Pushbullet Channel

Could you please add the channel functionality so that I could redirect all plexpy notifications to my own custom channel ie. plexserver for example.

channel_tag - Send the push to all subscribers to your channel that has this tag.

I use pushbullet for other services as well, this way I keep them all organized and separated from each other.

see here for the documentation
https://docs.pushbullet.com/

fails to start as daemon

trying to run as a daemon, not sure where the issue is

user@server:~$ sudo service plexpy start
 * Removing stale /var/run/plexpy/plexpy.pid
 * Starting PlexPy                                  
Traceback (most recent call last):
  File "PlexPy.py", line 220, in <module>
    main()
  File "PlexPy.py", line 155, in main
    plexpy.initialize(config_file)
  File "/opt/plexpy/plexpy/__init__.py", line 167, in initialize
    plextv.refresh_users()
  File "/opt/plexpy/plexpy/plextv.py", line 40, in refresh_users
    pw_db.upsert('plexpy_users', new_value_dict, control_value_dict)
  File "/opt/plexpy/plexpy/db.py", line 111, in upsert
    self.action(update_query, valueDict.values() + keyDict.values())
  File "/opt/plexpy/plexpy/db.py", line 70, in action
    sqlResult = c.execute(query, args)
sqlite3.OperationalError: no such table: plexpy_users                                                                                                        [fail]

Can't save config from web

I can't seem to save the config from the web. Just changed a check mark and hit "save" it then said in a red bar "Please verify your settings"

Am i doing something wrong here? Or is this a bug?

More graph ideas.

I should probably add these all as separate requests, but they all deal with graphing...

When you hover the mouse over a day in the main graph, it shows you how many TV shows and Movies get watched on the given day. It would be nice to have it show the actual shows/movies when you click on the given day. (Just a little pop up.)

Right now you have the Most Active Platform on the home page. Would it be possible to have a graph showing the clients, say in the last 30 days, listing all of the client apps that have watched a stream. Helps to know how many clients the admin has to support.

Transcode vs DP, vs DS. A graph showing how much has been transcoded vs direct played vs direct streamed, and can click on either to see what show were affected. I'm thinking something like the main graph, but 3 traces. Click on a day and it gives a report of the day, showing what, how, and who. Could be useful for setting clients up correctly for your server or finding problem media files.

"Failed to retrieve image"

On the latest version (2aa833d) I'm getting the following errors in the terminal:

02-Jul-2015 17:33:45 - WARNING :: CP Server Thread-8 : Failed to retrieve image. Status code 500
02-Jul-2015 17:33:45 - WARNING :: CP Server Thread-8 : Image proxy queried but errors occured.

Also the picture of "Most Active User" on the website is just a placeholder picture.

After start over terminal

When I start PlexPy without any additional parameters the following text appears:
image

Log messages are overwriting this text; nothing is updating and it just looks a bit strange. Should that be updated? Is that a planned feature?

[REQUEST] Notification checkbox on user page

Love the ability to disable notifications for certain users but it currently requires diving into each user's profile individually. It would be excellent to have the ability to make these modification quickly from the users page (table view).

Error when importing from plexWatch db

Hi,

I have a 2 year database from plexWatch which I want to keep. As soon as the import starts, I have the following error:

23-jul-2015 15:34:30 - DEBUG :: Thread-18 : PlexPy Importer :: PlexWatch data import in progress...
23-jul-2015 15:34:30 - DEBUG :: Thread-18 : PlexPy Importer :: Disabling monitoring while import in progress.
23-jul-2015 15:34:30 - INFO :: Thread-18 : Requesting users list refresh...
23-jul-2015 15:34:32 - INFO :: Thread-18 : Users list refreshed.
23-jul-2015 15:34:32 - DEBUG :: Thread-18 : PlexPy Importer :: Item has bad rating_key: http://www.canalplus.fr/c-sport/c-football/pid6597-c-enquetes-de-foot.html?vid=992848
23-jul-2015 15:34:32 - ERROR :: Thread-18 : Uncaught exception: Traceback (most recent call last):
  File "/private/tmp/plexpy/plexpy/logger.py", line 210, in new_run
    old_run(*args, **kwargs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 763, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/private/tmp/plexpy/plexpy/plexwatch_import.py", line 363, in import_from_plexwatch
    if str(row[2]).isdigit():
UnicodeEncodeError: 'ascii' codec can't encode characters in position 51-52: ordinal not in range(128)

Traceback (most recent call last):
  File "/private/tmp/plexpy/plexpy/logger.py", line 210, in new_run
    old_run(*args, **kwargs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.py", line 763, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/private/tmp/plexpy/plexpy/plexwatch_import.py", line 363, in import_from_plexwatch
    if str(row[2]).isdigit():
UnicodeEncodeError: 'ascii' codec can't encode characters in position 51-52: ordinal not in range(128)

Note that I have a lot of french content which may cause this issue.

If "Local" is playing media, then "Activity" returns a 500 Internal Server Error.

Similar to #32, tries to get an ID for "Local" but it returns None

Traceback (most recent call last):
  File "lib/cherrypy\_cprequest.py", line 670, in respond
    response.body = self.handler()
  File "lib/cherrypy\lib\encoding.py", line 217, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "lib/cherrypy\_cpdispatch.py", line 61, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "G:\GitHub\plexpy\plexpy\webserve.py", line 620, in get_current_activity_header
    result = pms_connect.get_current_activity()
  File "G:\GitHub\plexpy\plexpy\pmsconnect.py", line 489, in get_current_activity
    session_output = self.get_session_each(session_type, session)
  File "G:\GitHub\plexpy\plexpy\pmsconnect.py", line 660, in get_session_each
    'user_id': user_details['user_id'],
TypeError: 'NoneType' object has no attribute '__getitem__'

I mostly play my media via DLNA on my Bravia TV, which does not have a Plex app and those plays show up as 'Local' and monitoring fails.
screenshot 5
And the settings link in the error message is linked to 'config' which has been removed.

Feature Request: Disable stats function for PMS operator

It would be nice if I could disable the stats/logs for my personal account.

Having my plex user account listed along with the guest accounts throws off the recorded stats and trends, thus skewing the true data set. I often repeatedly test videos that I remux and that leads to a lot of outlyer data generated by only my account.

Just think that would be a cool feature to be able to disable the stats for the 'admin' of the PMS.

Overall, a nice project you have going on here. Highly appreciated.

Feature request: configure notifications

The only thing I miss from PlexWatch is the ability to customize the notifications.

For example, using Pushover, instead of just getting "Playback started" for the notification title, PlexWatch defaulted to having the user's name in the title, providing meaningful information at a glance. Also, it was nice being able to see whether the item was being transcoded or direct played, and having SxxExx on TV shows was a helpful feature as well (to see when someone is churning through a season).

Just a humble request. This is already becoming such a powerful tool! Thanks so much!

I'll Be Back!

I got this error trying to do the automatic update.

Traceback (most recent call last):
  File "lib/cherrypy\_cprequest.py", line 670, in respond
    response.body = self.handler()
  File "lib/cherrypy\lib\encoding.py", line 217, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "lib/cherrypy\_cpdispatch.py", line 61, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "C:\plexpy\plexpy\webserve.py", line 497, in update
    return self.do_state_change('update', 'Updating', 120)
  File "C:\plexpy\plexpy\webserve.py", line 460, in do_state_change
    quote = self.random_arnold_quotes()
  File "C:\plexpy\plexpy\webserve.py", line 1048, in random_arnold_quotes
    return quote_list[int(random_number)]
IndexError: list index out of range

Looks like you forgot a -1 in there :)

[Aliases for player names] Option to rename the platorm/user

Like in plexwatch, have this option in plexpy

Give a user a more friendly name. I.E. REAL_USER will now be Frank
you may also specify the platform with user+platform
$user_display = {'User+TV UE55D7000' => 'TV Living',
'User+TV UE46ES8000' => 'TV Bedroom',
'User+Chromecast' => 'Chromecast',
'User+Plex Web (Chrome)' => 'iMac',
'User+Plex for Sony (PlayStation 4 01.17)' => 'PS4',

Config file Re-writing itself [Pushover bug]

It appears that after last nights update when a change is made in the settings, the save is not committed to the config file. For example, when adding the API token to the PushOver settings, after setting and going back in to the setting it is showing a value of 1. This has lead to the notification function no longer working. Also I tried to remove the server credentials from the settings, and while it does not ask me for user name or password on logging, no matter how many times i delete the setting, it is still in there when I navigate back to the settings.

Feature Request: Override base url (for use in reverse proxies)

It would be lovely for an option to to set a base URL, for use in reverse proxies.
For instance, in nginx I have configured /plexpy/ as an endpoint to go to http://127.0.0.1:8181/, but when I go to the URL I get this:

404 Not Found

The path '/statistics' was not found.

Traceback (most recent call last):
  File "/opt/plexpy/lib/cherrypy/_cprequest.py", line 670, in respond
    response.body = self.handler()
  File "/opt/plexpy/lib/cherrypy/lib/encoding.py", line 217, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/opt/plexpy/lib/cherrypy/_cperror.py", line 411, in __call__
    raise self
NotFound: (404, "The path '/statistics' was not found.")
Powered by CherryPy 3.8.0

Feature Request

I know this is a small qwerk on my part but would it be possible to toggle the completed symbol to a numeric percentage if so desired?

Run custom script

Please may you add an option for "Run custom script"
ad example:

Run custom script(%user%, %title%, %library%)
run: "say %user% is watching %title%"

Thanks!

Hardcoded cache and logs dir paths?

Hello.

I recently came across plexpy, and decided to test it out. I'm especially interested sine it's based on Headphones (I run HP, SAB, SickRage, CP) since I should be able to slap in plexpy next to those other apps, and it be an easy setup. Going through your install, you say to install to /opt which works fine, but I don't like doing that. Essentially, I'm trying to run it on CentOS 7 like this:
/usr/bin/python /apps/plexpy/PlexPy.py --daemon --datadir /apps/data/.plexpy --config /apps/data/.plexpy/plexpy_config.ini --nolaunch --quiet

(That's the ExecStart from my systemd file)
And since I'm running that as plexpy:plexpy, it's failing to start. Why? Because it can't create /opt/plexpy{cache,logs}. If I change my systemd file to run as root:root, it runs. Why? Because root can create those directories in /opt.

Headphones, by default, will put those cache and logs directories, within the data directory. Why doesn't PlexPy?

FWIW, here is a link to my blog post where I document my setup of SAB/SickRage/CouchPotatoServer/Headphones, so you can get a better understanding of how I want to setup PlexPy.

http://deviantengineer.com/2015/06/usenet-centos7/

Thanks!

[FQ] Encrypt Plex password

After doing some configuration in the webinterface I saw that the password(s) get's saved unencrypted in the config.ini file. So I would wish me that the passwords gets encrypted in the future :)

Error while checking version

Hi,
I have the following error when I start plexpy. It seems it happens when checking for new versions.

05-aoû-2015 11:57:38 - INFO :: MainThread : Checking to see if the database has all tables....
05-aoû-2015 11:57:38 - DEBUG :: MainThread : Trying to execute: "git rev-parse HEAD" with shell in /Users/farid/plexpy
05-aoû-2015 11:57:38 - DEBUG :: MainThread : Git output: fa782641efbb624bae312f98d9d063b2b7eaf9ea
05-aoû-2015 11:57:38 - DEBUG :: MainThread : Trying to execute: "git rev-parse --abbrev-ref HEAD" with shell in /Users/farid/plexpy
05-aoû-2015 11:57:38 - DEBUG :: MainThread : Git output: master
05-aoû-2015 11:57:38 - INFO :: MainThread : Retrieving latest version information from GitHub
05-aoû-2015 11:57:38 - DEBUG :: MainThread : Requesting URL via GET method: https://api.github.com/repos/drzoidberg33/plexpy/commits/master
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/handlers.py", line 76, in emit
    if self.shouldRollover(record):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/handlers.py", line 156, in shouldRollover
    msg = "%s\n" % self.format(record)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 724, in format
    return fmt.format(record)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 467, in format
    s = self._fmt % record.__dict__
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5: ordinal not in range(128)
Logged from file versioncheck.py, line 134
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 851, in emit
    msg = self.format(record)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 724, in format
    return fmt.format(record)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 467, in format
    s = self._fmt % record.__dict__
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5: ordinal not in range(128)
Logged from file versioncheck.py, line 134
05-aoû-2015 11:57:39 - INFO :: MainThread : PlexPy is up to date
05-aoû-2015 11:57:39 - INFO :: MainThread : Requesting URLs for server...
05-aoû-2015 11:57:39 - INFO :: MainThread : Writing configuration to file
05-aoû-2015 11:57:39 - INFO :: MainThread : Writing configuration to file
05-aoû-2015 11:57:39 - INFO :: MainThread : Requesting users list refresh...
05-aoû-2015 11:57:42 - INFO :: MainThread : Users list refreshed.
05-aoû-2015 11:57:42 - INFO :: MainThread : Starting PlexPy web server on http://0.0.0.0:8080/
05-aoû-2015 11:57:42 - INFO :: MainThread : Scheduled background task: Check GitHub for updates
05-aoû-2015 11:57:42 - INFO :: MainThread : Scheduled background task: Refresh Plex Server URLs
05-aoû-2015 11:57:42 - INFO :: MainThread : Scheduled background task: Check for active sessions
05-aoû-2015 11:57:42 - INFO :: MainThread : Scheduled background task: Refresh users list
``

[REQUEST] Throttle NZBGet

Would be awesome to be able to throttle NZBGet (or SAB) based on the number of active streams. All in the name of great experience for those you share with.

[REQUEST] Movie/TV Requests

There are plans to do a mailer for recently added which is pulling in functionality from other tools built by the community. I like the idea and feel it makes sense to have it within plexpy.

Similarly, I think a "requests" feature much like PlexRequests (https://github.com/lokenx/plexrequests-meteor) might also be a nice fit and a great addition to the tool.

Bug - Unable to parse custom notification body. Using default.

I've noticed that for one particular shared user with one particular device (iPad), I get a different notification style than what I have set.

I decided to investigate and saw this in the console log:

03-Aug-2015 15:34:14 - ERROR :: Thread-132 : PlexPy Notifier :: Unable to parse custom notification body. Using default.

It will show the default only for that one user/device combo, regardless of whether its a movie or TV show. With other devices, the notification is displayed as it should. Here is what I have set for the notification:

{user} watching Plex - {transcode_decision}
{title} <movie>({year})</movie><tv>{season_num}x{episode_num}</tv> [{progress} mins in, {progress_percent}%] on {player}

I think there must be some problem with it displaying either the progress, progress_percent, or player with that particular user, as the subject notification is still using my custom one. Everything does seem to be populating as expected in the history section within PlexPy.

[Request] Import from PlexNotify

I happen to have over 9 months of historical data in the sqlite db belonging to plexNotify, which I couldn't port to plexWatch before.

Would it be possible to allow importing from plexNotify ? It would do my graphs very good hehe

Failed to start

Hi,

When running plexy through python, everything works good but running as deamon I receive an error, I followed the instruction very good

Running as deamon

root@debian:/# service plexpy start
[warn] Removing stale /var/run/plexpy/plexpy.pid ... (warning).
[....] Starting PlexPy:Traceback (most recent call last):
  File "PlexPy.py", line 220, in <module>
    main()
  File "PlexPy.py", line 155, in main
    plexpy.initialize(config_file)
  File "/opt/plexpy/plexpy/__init__.py", line 167, in initialize
    plextv.refresh_users()
  File "/opt/plexpy/plexpy/plextv.py", line 40, in refresh_users
    pw_db.upsert('plexpy_users', new_value_dict, control_value_dict)
  File "/opt/plexpy/plexpy/db.py", line 111, in upsert
    self.action(update_query, valueDict.values() + keyDict.values())
  File "/opt/plexpy/plexpy/db.py", line 70, in action
    sqlResult = c.execute(query, args)
sqlite3.OperationalError: attempt to write a readonly database
 failed!

Run as python command

root@debian:/opt/plexpy# python PlexPy.py 
06-Jul-2015 11:08:13 - INFO :: MainThread : Checking to see if the database has all tables....
06-Jul-2015 11:08:13 - DEBUG :: MainThread : Trying to execute: "git rev-parse HEAD" with shell in /opt/plexpy
06-Jul-2015 11:08:13 - DEBUG :: MainThread : Git output: 7a5cad1a31cb0e7a98af45b449b6219527a9cd72
06-Jul-2015 11:08:13 - DEBUG :: MainThread : Trying to execute: "git rev-parse --abbrev-ref HEAD" with shell in /opt/plexpy
06-Jul-2015 11:08:13 - DEBUG :: MainThread : Git output: master
06-Jul-2015 11:08:13 - INFO :: MainThread : Retrieving latest version information from GitHub
06-Jul-2015 11:08:13 - DEBUG :: MainThread : Requesting URL via GET method: https://api.github.com/repos/drzoidberg33/plexpy/commits/master
06-Jul-2015 11:08:14 - DEBUG :: MainThread : Latest version is 7a5cad1a31cb0e7a98af45b449b6219527a9cd72
06-Jul-2015 11:08:14 - INFO :: MainThread : PlexPy is up to date
06-Jul-2015 11:08:14 - INFO :: MainThread : Requesting users list refresh...
06-Jul-2015 11:08:16 - INFO :: MainThread : Users list refreshed.
06-Jul-2015 11:08:16 - INFO :: MainThread : Starting PlexPy web server on http://0.0.0.0:8181/
06-Jul-2015 11:08:16 - INFO :: MainThread : Web server authentication is enabled, username is 'admin'
06-Jul-2015 11:08:17 - INFO :: MainThread : Scheduled background task: Check GitHub for updates
06-Jul-2015 11:08:17 - INFO :: MainThread : Scheduled background task: Check for active sessions
06-Jul-2015 11:08:17 - INFO :: MainThread : Scheduled background task: Refresh users list

what's the issue here ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.