Skip to content
This repository was archived by the owner on Oct 21, 2024. It is now read-only.

Commit b5e3604

Browse files
Add option for debug logging and fix CI (#27)
1 parent 121ea88 commit b5e3604

File tree

11 files changed

+75
-51
lines changed

11 files changed

+75
-51
lines changed

.github/workflows/addon-check.yml

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,17 @@
11
name: Kodi
2-
32
on:
4-
push:
5-
branches:
6-
- master
7-
pull_request:
8-
branches:
9-
- master
10-
3+
- pull_request
4+
- push
115
jobs:
126
tests:
13-
name: Kodi Add-on checker
7+
name: Addon checker
148
runs-on: ubuntu-latest
159
strategy:
1610
fail-fast: false
1711
matrix:
1812
kodi-branch: [leia, matrix]
1913
steps:
20-
- name: Check out ${{ github.sha }} from repository ${{ github.repository }}
21-
uses: actions/checkout@v2
14+
- uses: actions/checkout@v2
2215
with:
2316
path: ${{ github.repository }}
2417
- name: Set up Python 3.8
@@ -27,15 +20,20 @@ jobs:
2720
python-version: 3.8
2821
- name: Install dependencies
2922
run: |
30-
sudo apt-get install libxml2-utils xmlstarlet
23+
sudo apt-get install xmlstarlet
3124
python -m pip install --upgrade pip
32-
pip install kodi-addon-checker
25+
# FIXME: Requires changes from xbmc/addon-check#217
26+
#pip install kodi-addon-checker
27+
pip install git+git://github.com/xbmc/addon-check.git@master
3328
- name: Remove unwanted files
3429
run: awk '/export-ignore/ { print $1 }' .gitattributes | xargs rm -rf --
3530
working-directory: ${{ github.repository }}
3631
- name: Rewrite addon.xml for Matrix
37-
run: xmlstarlet ed -L -u '/addon/requires/import[@addon="xbmc.python"]/@version' -v "3.0.0" addon.xml
32+
run: |
33+
xmlstarlet ed -L -u '/addon/requires/import[@addon="xbmc.python"]/@version' -v "3.0.0" addon.xml
34+
version=$(xmlstarlet sel -t -v 'string(/addon/@version)' addon.xml)
35+
xmlstarlet ed -L -u '/addon/@version' -v "${version}+matrix.99" addon.xml
3836
working-directory: ${{ github.repository }}
3937
if: matrix.kodi-branch == 'matrix'
4038
- name: Run kodi-addon-checker
41-
run: kodi-addon-checker --branch=${{ matrix.kodi-branch }} ${{ github.repository }}/
39+
run: kodi-addon-checker --branch=${{ matrix.kodi-branch }} ${{ github.repository }}/

.github/workflows/ci.yml

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,10 @@
11
name: CI
2-
32
on:
4-
push:
5-
branches:
6-
- master
7-
pull_request:
8-
branches:
9-
- master
10-
3+
- pull_request
4+
- push
115
jobs:
126
tests:
13-
name: Unit tests
7+
name: Add-on testing
148
runs-on: ubuntu-latest
159
env:
1610
PYTHONIOENCODING: utf-8
@@ -33,26 +27,21 @@ jobs:
3327
python -m pip install --upgrade pip
3428
pip install -r requirements.txt
3529
- name: Run pylint
36-
run: |
37-
make check-pylint
30+
run: make check-pylint
3831
- name: Run tox
39-
run: |
40-
make check-tox
32+
run: make check-tox
4133
- name: Check translations
42-
run: |
43-
make check-translations
34+
run: make check-translations
4435
- name: Run unit tests
36+
run: coverage run -m unittest discover
4537
env:
38+
ADDON_PASSWORD: ${{ secrets.ADDON_PASSWORD }}
4639
ADDON_USERNAME: ${{ secrets.ADDON_USERNAME }}
40+
- name: Run addon service
41+
run: coverage run -a service_entry.py
42+
env:
4743
ADDON_PASSWORD: ${{ secrets.ADDON_PASSWORD }}
48-
run: |
49-
coverage run -m unittest discover
50-
- name: Run addon
51-
run: |
52-
coverage run -a tests/run.py /
53-
- name: Run add-on service
54-
run: |
55-
coverage run -a service_entry.py
44+
ADDON_USERNAME: ${{ secrets.ADDON_USERNAME }}
5645
- name: Upload code coverage to CodeCov
5746
uses: codecov/codecov-action@v1
5847
continue-on-error: true

addon_entry.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33

44
from __future__ import absolute_import, division, unicode_literals
55

6-
import xbmcaddon
6+
from xbmcaddon import Addon
77

8-
from resources.lib import kodiutils
8+
from resources.lib import kodiutils, kodilogging
99

10-
kodiutils.ADDON = xbmcaddon.Addon()
10+
# Reinitialise ADDON every invocation to fix an issue that settings are not fresh.
11+
kodiutils.ADDON = Addon()
12+
kodilogging.ADDON = Addon()
1113

1214
if __name__ == '__main__':
1315
from sys import argv

resources/language/resource.language.en_gb/strings.po

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,3 +181,15 @@ msgstr ""
181181
msgctxt "#30831"
182182
msgid "Update local metadata now"
183183
msgstr ""
184+
185+
msgctxt "#30880"
186+
msgid "Expert"
187+
msgstr ""
188+
189+
msgctxt "#30881"
190+
msgid "Logging"
191+
msgstr ""
192+
193+
msgctxt "#30882"
194+
msgid "Enable debug logging"
195+
msgstr ""

resources/language/resource.language.nl_nl/strings.po

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,3 +182,15 @@ msgstr "Vernieuw de lokale metdata automatisch in de achtergrond"
182182
msgctxt "#30831"
183183
msgid "Update local metadata now"
184184
msgstr "De lokale metadata nu vernieuwen"
185+
186+
msgctxt "#30880"
187+
msgid "Expert"
188+
msgstr "Expert"
189+
190+
msgctxt "#30881"
191+
msgid "Logging"
192+
msgstr "Logboek"
193+
194+
msgctxt "#30882"
195+
msgid "Enable debug logging"
196+
msgstr "Activeer debug logging"

resources/lib/kodilogging.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@
88
import xbmc
99
import xbmcaddon
1010

11+
ADDON = xbmcaddon.Addon()
12+
1113

1214
class KodiLogHandler(logging.StreamHandler):
1315
""" A log handler for Kodi """
1416

1517
def __init__(self):
1618
logging.StreamHandler.__init__(self)
17-
addon_id = xbmcaddon.Addon().getAddonInfo("id")
18-
formatter = logging.Formatter("[{}] [%(name)s] %(message)s".format(addon_id))
19+
formatter = logging.Formatter("[{}] [%(name)s] %(message)s".format(ADDON.getAddonInfo("id")))
1920
self.setFormatter(formatter)
2021

2122
def emit(self, record):
@@ -24,10 +25,16 @@ def emit(self, record):
2425
logging.CRITICAL: xbmc.LOGFATAL,
2526
logging.ERROR: xbmc.LOGERROR,
2627
logging.WARNING: xbmc.LOGWARNING,
27-
logging.INFO: xbmc.LOGINFO,
28+
logging.INFO: xbmc.LOGNOTICE,
2829
logging.DEBUG: xbmc.LOGDEBUG,
2930
logging.NOTSET: xbmc.LOGNONE,
3031
}
32+
33+
# Map DEBUG level to LOGNOTICE if debug logging setting has been activated
34+
# This is for troubleshooting only
35+
if ADDON.getSetting('debug_logging') == 'true':
36+
levels[logging.DEBUG] = xbmc.LOGNOTICE
37+
3138
try:
3239
xbmc.log(self.format(record), levels[record.levelno])
3340
except UnicodeEncodeError:

resources/lib/modules/player.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@ def play_from_page(self, channel, path):
3838
# We already have a resolved stream. Nice!
3939
# We don't need credentials for these streams.
4040
resolved_stream = episode.stream
41-
_LOGGER.info('Already got a resolved stream: %s', resolved_stream)
41+
_LOGGER.debug('Already got a resolved stream: %s', resolved_stream)
4242

4343
if episode.uuid:
4444
# Lookup the stream
4545
resolved_stream = self._resolve_stream(episode.uuid)
46-
_LOGGER.info('Resolved stream: %s', resolved_stream)
46+
_LOGGER.debug('Resolved stream: %s', resolved_stream)
4747

4848
if resolved_stream:
4949
titleitem = Menu.generate_titleitem(episode)

resources/lib/service.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def __init__(self):
2828

2929
def run(self):
3030
""" Background loop for maintenance tasks """
31-
_LOGGER.info('Service started')
31+
_LOGGER.debug('Service started')
3232

3333
while not self.abortRequested():
3434
# Update every `update_interval` after the last update
@@ -39,12 +39,12 @@ def run(self):
3939
if self.waitForAbort(10):
4040
break
4141

42-
_LOGGER.info('Service stopped')
42+
_LOGGER.debug('Service stopped')
4343

4444
def onSettingsChanged(self): # pylint: disable=invalid-name
4545
""" Callback when a setting has changed """
4646
if self._has_credentials_changed():
47-
_LOGGER.info('Clearing auth tokens due to changed credentials')
47+
_LOGGER.debug('Clearing auth tokens due to changed credentials')
4848
self._auth.clear_tokens()
4949

5050
# Refresh container

resources/lib/viervijfzes/auth.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def __init__(self, username, password, token_path):
3939
self._refresh_token = data_json.get('refresh_token')
4040
self._expiry = int(data_json.get('expiry', 0))
4141
except (IOError, TypeError, ValueError):
42-
_LOGGER.info('We could not use the cache since it is invalid or non-existent.')
42+
_LOGGER.warning('We could not use the cache since it is invalid or non-existent.')
4343

4444
def get_token(self):
4545
""" Get a valid token """

resources/settings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,8 @@
1111
<setting label="30829" type="bool" id="metadata_update" default="true" subsetting="true"/>
1212
<setting label="30831" type="action" action="RunPlugin(plugin://plugin.video.viervijfzes/metadata/update)"/>
1313
</category>
14+
<category label="30880"> <!-- Expert -->
15+
<setting label="30881" type="lsep"/> <!-- Logging -->
16+
<setting label="30882" type="bool" id="debug_logging" default="false"/>
17+
</category>
1418
</settings>

0 commit comments

Comments
 (0)