Commit Graph

385 Commits

Author SHA1 Message Date
Odd Stråbø 3788a0b79c
Merge pull request #236 from mcarlton00/ascii-round-two
Fix ascii error on context menu
2020-03-21 18:20:58 +01:00
Matt 0647447c3c Follow redirects when connecting to server 2020-03-21 12:42:25 -04:00
Abby 69bb8bca04
Merge pull request #238 from mcarlton00/delete-artwork
Add ability to delete artwork from database
2020-03-20 23:41:08 +00:00
Matt 05a375d826 Add ability to delete artwork from database 2020-03-19 19:28:49 -04:00
Matt 4de1230cf5 Fix capitalization in boxsets 2020-03-19 18:04:23 -04:00
Matt 6e786a1e6b Use six to get correct string format 2020-03-19 12:37:50 -04:00
Matt 44808f5dd4 Fix ascii error on context menu 2020-03-19 09:37:47 -04:00
mcarlton00 d7364afbf5
Merge pull request #231 from TrueTechy/remove-webservice
Removed web server for image caching
2020-03-18 12:56:31 -04:00
mcarlton00 881c0e947a
Merge pull request #232 from TrueTechy/year-error-handling
Mitigation for #216 for invalid year
2020-03-17 21:33:45 -04:00
Abby Gourlay 9cb0f63749 Left an import in the clipboard 2020-03-18 01:20:22 +00:00
Abby Gourlay 1df9f15859 Resolved suggestions 2020-03-18 01:18:19 +00:00
mcarlton00 a7ef2f6243
Merge pull request #221 from TrueTechy/cleanup-connection-manager
Cleanup connection manager
2020-03-16 09:05:26 -04:00
Abby Gourlay 37a836dd57 Changed function return type 2020-03-16 12:36:06 +00:00
Abby Gourlay 5c93a06e9b Added mitigation for #216 for when the year data from the server is invalid 2020-03-15 01:27:07 +00:00
Abby Gourlay 3bff962cad Removed web server for image caching 2020-03-14 22:37:09 +00:00
Abby Gourlay a044c1fd29 Fixed API parameter bad optimisation 2020-03-14 21:53:15 +00:00
Abby Gourlay 48ed8ad74c Implemented Suggestions 2020-03-12 22:20:18 +00:00
Abby Gourlay 068a842184 Removed profilling code accidentally commited 2020-03-08 18:08:30 +00:00
Abby Gourlay 36cd765c21 Updated debug logging for sanitising user data 2020-03-08 16:29:15 +00:00
Matt 0cff79e3c8 Fix logic around checking existing video directory 2020-03-07 10:12:49 -05:00
Matt fcc6e942ab Use correct xml library for kodi 2020-03-07 08:36:30 -05:00
Matt bb0a539074 Rework xml unicode handling 2020-03-06 23:38:43 -05:00
Abby Gourlay 298c8b6f25 Renamed function for better clarity 2020-03-06 22:57:13 +00:00
Abby 4806379a25
Merge pull request #209 from druscoe/reduce_execute_and_fetch_one_calls
Reduce execute and fetch one calls
2020-02-27 23:30:10 +00:00
Abby e4a364e3bf
Merge pull request #215 from itsthejoker/library-clarifications
Remove duplicated code and rename UpdatedWorker class
2020-02-27 23:23:59 +00:00
Joe Kaufeld 12a373d030 remove duplicated code and rename UpdatedWorker class
Signed-off-by: Joe Kaufeld <joe@grafeas.org>
2020-02-26 22:49:42 -05:00
Matt e6101b404a Fix music video scanning 2020-02-26 21:05:38 -05:00
Matt de95807323 Run library updates properly with current items 2020-02-26 20:59:02 -05:00
Abby 43f0c57ffd
Merge pull request #211 from mcarlton00/once-more-with-feeling
More getitem cleanup in library
2020-02-26 23:07:12 +00:00
Matt 7efc6f9b6a Fix variable names 2020-02-25 20:25:47 -05:00
Matt 1d02fccce6 Prevent harmless errors about bad dates from the server 2020-02-25 20:19:59 -05:00
Matt 4e37aa9bbf Finish getitem cleanup in library 2020-02-25 18:39:50 -05:00
Chuddah e23d2e1f7b Forgot to remove unexecuted code. 2020-02-23 19:31:41 +00:00
Chuddah 6fe450da4d Attempt number 2 on a larger dataset; the people table.
Note: This has a previously applied optimization of using a local cache.

Before:
```
458570   66.934    0.000   66.934    0.000 {method 'execute' of 'sqlite3.Cursor' objects}
246771   58.075    0.000   58.075    0.000 {method 'fetchone' of 'sqlite3.Cursor' objects}
```

After:
```
368883   66.220    0.000   66.220    0.000 {method 'execute' of 'sqlite3.Cursor' objects}
157084   58.160    0.000   58.160    0.000 {method 'fetchone' of 'sqlite3.Cursor' objects}
```

Once again, the number of calls to execute and fetchone are reduced but
the total time spent executing each is relatively stable.
2020-02-23 18:27:12 +00:00
Chuddah 0a69894320 Attempt to reduce the number of calls to execute and fetchone.
Profiling has shown that there are many calls to sqlite3.execute and
fetchone which takes a signicant amount of time. A simple way of
reducing these is to swap the 2-stage init of table row data into a
unified add.

Applying this to add_set and add_country yielded these results:

Before changes
```
281784    7.054    0.000    7.054    0.000 {method 'execute' of 'sqlite3.Cursor' objects}
127443    1.114    0.000    1.114    0.000 {method 'fetchone' of 'sqlite3.Cursor' objects}
```

After changes
```
281714    7.492    0.000    7.492    0.000 {method 'execute' of 'sqlite3.Cursor' objects}
127373    1.217    0.000    1.217    0.000 {method 'fetchone' of 'sqlite3.Cursor' objects}
```

Note: The total time of fetchone has actually increased. I am hoping
this was an abnormality on my machine and the actual reduction in the
number of calls will permantly reduce this total time.
2020-02-23 18:00:38 +00:00
Matt 19ec48cd5b Use six library instead of checking sys version 2020-02-23 00:07:44 -05:00
Matt 5479ba2775 Make commands python 2/3 compatible 2020-02-22 23:23:14 -05:00
mcarlton00 0e4458fa75
Merge pull request #193 from druscoe/inefficeint_usage_of_json_dumps_in_debug_output
Replaced debug output of json.dumps with an indirection to lazy __str__.
2020-02-22 14:50:49 -05:00
Chuddah de493d13dd Moved JsonDebugPrinter to existing utils module 2020-02-22 15:04:28 +00:00
mcarlton00 4d4f45cd42
Merge pull request #202 from druscoe/threaded_http_gets
Parallelize multiple http GETs
2020-02-20 20:12:29 -05:00
Abby Gourlay e5cde15ad2 Added a missing file 2020-02-21 00:50:32 +00:00
Abby Gourlay 417b9fb938 Recreated Branch 2020-02-21 00:42:50 +00:00
mcarlton00 2fbdd191d5
Merge pull request #201 from druscoe/in_progress_ui_updates
Allow for UI updates as the library is being sync'ed
2020-02-20 19:20:07 -05:00
Damien Ruscoe 756991e9ec
Resort to the expensive database lookup only if the person exists in the (#200)
* Added profiling info

* Resort to the expensive database lookup only if the person exists in the
database.

* Prevent any access to the people database unless a person must be added.

* Bulk operations where possible.

* Prepare for a new install and the table not existing.
2020-02-19 19:28:47 -05:00
Chuddah bf46548365 Removed previous fixup.
The recursive call to get_workers was implemented as it looked like the
original intent of the DTHREADS variable. Otherwise this variable was
redundant. The ThreadPool is a much better use of this setting.
2020-02-19 23:23:21 +00:00
Chuddah ce10cb88c2 Merge branch 'master' into threaded_http_gets 2020-02-19 23:11:05 +00:00
Chuddah 302880f67a Parallelize multiple http GET requests
Added ThreadPoolExecutor and used to process GET requests in multiple
threads which enables chunks of data to always be available for
processing. Processing of the data can happen as soon as the first chunk
arrives.

Refactored the code to help implement. The idea is the "params" are
built in batch and passed to the thread pool which get the actual
results.
2020-02-19 22:18:54 +00:00
mcarlton00 de70d9ac60
Merge pull request #197 from druscoe/fix_empty_download_thread_list
Move the responsibility of the maximum number of threads to the UI.
2020-02-18 20:03:44 -05:00
Chuddah af810861c8 Allow for UI updates as the library is being sync'ed
Periodically release the locks on the database as the sync with the
server is being performed. This allows the UI to communicate with its
database and update the UI in real time.

Taken this oppurtunity to refactor some common code improve
maintainance.
2020-02-18 23:23:47 +00:00
Chuddah 2bf2206a1e Move the responsibility of the maximum number of threads to the UI.
Previously the user was able to set any number to limitThreads UI
component but internally that was reduced to be a maximum of 50 which is
deceiving to the user. Set this is set as a boundary in the UI.

This also fixes a bug that the user could set the number of threads to
zero which follows from GIGO; but let the UI assist by placing a min
number of threads to 1.
2020-02-17 11:59:48 +00:00
mcarlton00 5fc60fce6b
Merge pull request #195 from druscoe/fix_empty_download_thread_list
Fix empty download thread list
2020-02-16 19:16:21 -05:00
Chuddah 4649d2371f Keep adding threads until the user limit has been reached 2020-02-16 23:39:27 +00:00
Chuddah b878a0e433 Added download thread to the download_threads when created. 2020-02-16 22:56:46 +00:00
Chuddah b9817a5617 Revert "Replaced debug output of json.dumps with an indirection to lazy __str__."
This reverts commit 78fda95853.

Committed on the wrong branch.
2020-02-16 22:22:23 +00:00
Chuddah 7491000a13 Replaced debug output of json.dumps with an indirection to lazy __str__.
json.dumps is a processing intensive operation. This is being called
every time data is received from the server (most noticeably during
library updates) for debug logging. If the user has debug logging
disabled (the default option) then the user is still paying for
processing which is discarded.

The fix is to add a level of indirection where the dumps function is
only called if a string representation of the json is requested; ie.
when the debug string is evaluated.
2020-02-16 22:17:05 +00:00
Chuddah 78fda95853 Replaced debug output of json.dumps with an indirection to lazy __str__.
json.dumps is a processing intensive operation. This is being called
every time data is received from the server (most noticeably during
library updates) for debug logging. If the user has debug logging
disabled (the default option) then the user is still paying for
processing which is discarded.

The fix is to add a level of indirection where the dumps function is
only called if a string representation of the json is requested; ie.
when the debug string is evaluated.
2020-02-16 22:07:56 +00:00
Chuddah 85d4e660ef Dont modify a list as you are traversing it. The result is
implementation dependant although with CPython elements are
unintentionally skipped during iteration.

Basic CPython example:

>>> A = [1,2,3,4,5,6]
>>> for a in A:
...     A.remove(a)
>>> A
[2, 4, 6]
2020-02-16 18:41:14 +00:00
mcarlton00 94456ddcd8
Merge pull request #192 from mcarlton00/fix-remote-crash
Fix playlist paths
2020-02-15 11:22:18 -05:00
mcarlton00 0b3319a01a
Merge pull request #190 from mcarlton00/obj-error
Obj error
2020-02-15 11:21:57 -05:00
mcarlton00 0bd378f9c9 Fix playlist paths 2020-02-14 20:15:14 -05:00
mcarlton00 ba6242dd93 Fixing indentation 2020-02-13 19:43:29 -05:00
mcarlton00 c6a701a4a3 Fix library object types 2020-02-13 19:39:38 -05:00
mcarlton00 e30e6dca8a Add link to magic string 2020-02-12 17:22:49 -05:00
mcarlton00 07c9fffab7 Fix kodi 19 websocket control 2020-02-11 23:09:55 -05:00
Abby 42258c699a Removed unnecessary log messages and changed some to debug (#167) 2020-01-05 18:41:26 -05:00
Odd Stråbø 933a31ac23 Fixes for Kodi 18.5 (and Python2) 2020-01-04 05:17:51 +01:00
Odd Stråbø a51bf9c2cc Initial work on Kodi 19 (and Python 3) support 2020-01-04 03:32:30 +01:00
mcarlton00 2e8d2e6009 Move the RemoteAddress check 2019-12-16 19:36:04 -05:00
mcarlton00 e96f32308b Remove emby references from music database 2019-12-14 11:42:39 -05:00
mcarlton00 a7c96577cd Remove all emby api endpoints 2019-12-14 08:19:57 -05:00
mcarlton00 58c9db9944
Merge pull request #160 from mcarlton00/metadata-fix
Correct filepath when entering data to database
2019-12-13 19:59:44 -05:00
mcarlton00 14fd9253b2
Remove remote address if it still exists in the config file 2019-12-13 19:53:38 -05:00
mcarlton00 842b0813a3
Add migration for manual configuration servers 2019-12-13 19:38:20 -05:00
Matt 014d2ef3c5 Fix database entry for music videos 2019-12-13 18:19:48 -05:00
Odd Stråbø 039eea0aec Add config migration for pr #145 2019-12-13 23:44:46 +01:00
Matt 146aed33e9 Fix shows in addon mode, not directplay 2019-12-13 07:32:28 -05:00
Matt 60cc67eb15 Correct filepath when entering data to database 2019-12-12 21:32:53 -05:00
Matt ab1dcca938 Update websocket path 2019-12-10 22:41:35 -05:00
Abby f7fdcd0cd8
Merge branch 'master' into remove_commented_code 2019-12-09 20:33:40 +00:00
TrueTechy 109c107532 Removed blocks of commented out code 2019-12-09 20:27:11 +00:00
TrueTechy 4e179890ec Change translation function name from _ to translate 2019-11-25 00:58:44 +00:00
TrueTechy efa5048b95 Removed connection tests and minor cleanup 2019-11-11 23:08:21 +00:00
Odd Stråbø e91e979f4d Remove the prompt before library selection. 2019-11-09 20:16:19 +01:00
TrueTechy 7e8f34401d Remove Core folder 2019-11-07 22:59:10 +01:00
TrueTechy 84b8093171 Begin restructing, fixed some issues related to movement 2019-11-07 22:58:44 +01:00