Display a notification when the PeerTube service started so that the
user is aware that the add-on can be used.
This notification will be useful especially on slow devices.
The notification can be disabled in the settings.
The new "translation" job that will be available only when strings.po
files are modified.
It will use the msgcmp tool to check that the translation files use the
correct reference strings.
A new part is also added in the contribution guidelines to help future
translators to start up.
See merge request StCyr/plugin.video.peertube!21 for more information
* Turn the name of the main category of the settings into a localized
string
* Add separators to group settings per theme
* Make some settings name more explicit
* Translate the possible values of the settings video_filter and
video_sort_method
See merge request StCyr/plugin.video.peertube!20 for more information
Now the type of a video is defined when trying to play a video so that
live streams (.m3u8) are directly played by Kodi (no download required).
We are able to know if a video is live from the response of the "list"
REST API but it was decided to ignore this information in order to have
a single action to play video (whether it is live or not).
The goal was to keep the API of the add-on as simple as possible so that
externel users only have to call the add-on's API with the ID of a
video, without having to add the type of the video.
The information about the type of the video will anyway be available in
the response used to get the URL of a video so this solution does not
impact the performance.
New features:
* Add the description of each video and each instance. The total number
of local videos and users of an instance are also added to the
description of the instance in Kodi.
* Add the total number of pages in the "Next page" item (+ fix the
number of the current page)
* Display a notification when the download of the torrent starts (will
help the user to know that something is going on, especially on slow
machines)
* Support instance URL that are prefixed with "https://" in the settings
Internal changes:
* Create a smaller entry point file to match Kodi's best practices
(main.py)
* Create a new main module (addon.py) containing only the code related
to the add-on execution. The other lines of code were moved to the
classes PeerTube or KodiUtils.
* KodiUtils is now a class and an instance of this class is made
available to all the modules of the add-on to reuse easily its methods
and attributes.
* Create helper functions in KodiUtils for creating items in Kodi UI
easily
See merge request StCyr/plugin.video.peertube!17 for more information
The PeerTube class is responsible for providing methods to call easily
the PeerTube REST APIs.
Other changes:
* the video filter is now also used when searching videos
* in case of error when sending a request, the message from the response
is displayed on the screen (even when listing the instances)
* all the debug messages are now prefixed with the name of the add-on
directly in kodi_utils: it allows an easier usage of this function
anywhere in the add-on
* first version of the design of the add-on added in contributing.md
See merge request StCyr/plugin.video.peertube!14 for more information
The URL of the video is not stored in the same attribute of the response
if WebTorrent is enabled or not.
It caused a bug when trying to play a video which do not use WebTorrent.
Also create a "quality" job to run pylint automatically on merge
requests. The contributing guidelines are updated with this information
and the remaining pylint violations were fixed in the code.
See merge request StCyr/plugin.video.peertube!11 for more information
The CI job will take care of all the steps to create a new release in
GitLab:
* creation of the tag
* create of the release object with the release notes
All the required information will be extracted from the addon.xml file.
A "pre-release" job is also added to validate the changes in addon.xml
before the actual release is done.
All these steps are explained in the contribution guidelines.
Finally the files TESTME.md and createaddon.sh are removed since the
installation steps are explained in the wiki and the archive of the
add-on is created automatically by GitLab in the release.
See merge request StCyr/plugin.video.peertube!12 for more information
When a new instance was selected from the list of instances, it had no
effect because the new instance URL was saved in an attribute that was
reset at the next call of the add-on.
Now when the user selects a new instance, the associated setting is
updated so that this value can be reused the next time the add-on is
called or started.
Also took this opportunity to refactor the access to the add-on's
settings: there are now wrapper methods in kodi_utils.py which
encapsulates the call to Kodi APIs to make the code simpler.
See merge request StCyr/plugin.video.peertube!10 for more information
Libtorrent is required to play videos but its installation is still
manual so now a message is displayed when libtorrent could not be
imported instead of having a "service could not start" error at Kodi
startup.
The message contains a link to a page which explains how to install
libtorrent. It will be displayed when:
* the add-on starts
* the user selects a video to play (including when called externally)
Other additions:
* Create a kodi_utils module to centralize some calls to the Kodi API
* Add license information in the header of the files
* Ignore some files in Git (python cache and Mac OS system file)
Now the "play_video" action can be called with the ID of the video (and
optionally the URL of the instance hosting the video) as parameter
instead of the full URL: it will allow other add-ons to call the add-on
to play videos since the full URL contains the resolution which is not
known.
It led to some refactoring and changes in the code:
* Only the instance and the id of a video is retrieved when browsing and
listing videos which improves the performance a lot (the video URL and
the resolution are defined only when the video is played)
* the "https://" prefix is now automatically added to the instances URL
because the instance-related REST APIs use URLs without this prefix.
It also simplifies the external API because the user does not have to
provide this prefix.
Consequently the prefix was removed from the default value of the
selected instance in the settings: it simplifies the code but it
generates a non-backward compatible change. The impact is limited
because it can be easily fixed by resetting the settings to the
default value and there are very few users currently.
Other changes:
- manage errors when retrieving the information of a video
- fix some PEP 8 errors
Use "local" instead of "all-local" by default because "all-local"
requires admin privileges
Other improvements:
* Replace urllib with requests to make the management of the HTTP
requests simpler (better error handling and easier implementation of
complex requests in the future)
* Refactor the functions used to build the HTTP request to improve
maintainability (don't know if it makes sense to keep a single
function for the "search" and the "list videos" request).
* Use "urlencode" to generate the Kodi URL using a dict to make it more
generic.
* Create a function to log messages easily in Kodi's debug log. It will
decrease the amount of duplicate code.
* Fix some errors reported by pylint with regards to PEP 8
Merge branch 'local_videos' into 'master'
Add a video_filter parameter to be able to browse only local
- when browsing ( and not searching ) it is possible to select
filter=local that will show only local video
- create dedicated method to build kodi and peertube api url
- bumped version to 0.3.1.1 to indicate this change
- if selected upstream might want to change it to 0.3.2
See merge request StCyr/plugin.video.peertube!2
- when browsing ( and not searching ) it is possible to select
filter=local that will show only local video
- create dedicated method to build kodi and peertube api url
- bumped version to 0.3.1.1 to indicate this change
- if selected upstream might want to change it to 0.3.2
Addon will use, by order of preferrence:
1) The video matching exactly the user's preferrence
2) A video with the best resolution that is lower than the user's preferrence
3) The video with the lowest resolution that is higher than the user's preferrence