Skip to content

Commit

Permalink
Merge pull request #4489 from rickeylohia/plugin.video.stalkervod.v0.0.5
Browse files Browse the repository at this point in the history
[plugin.video.stalkervod] 0.0.5
  • Loading branch information
basrieter authored Mar 24, 2024
2 parents 93170f6 + a78eb4d commit 8639e9f
Show file tree
Hide file tree
Showing 8 changed files with 58 additions and 29 deletions.
4 changes: 4 additions & 0 deletions plugin.video.stalkervod/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# Stalker VOD Kodi add-on
**plugin.video.stalkervod** is a [Kodi](https://kodi.tv/) add-on for Stalker platform IPTV Client. You can watch Video On-Demand as well as TV Channels.

v0.0.5 - Fix for portals with no stalker_portal in context path
Please try re-entering the server address based on the format provided if it does not work after upgrading to v0.0.5
https://github.com/rickeylohia/plugin.video.stalkervod/issues/12

v0.0.4 Refactor, debug logs and minor bug fix

0.0.3 Minor bug fixes and highlight favorites
Expand Down
8 changes: 7 additions & 1 deletion plugin.video.stalkervod/addon.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.stalkervod" name="Stalker VOD Client" version="0.0.4" provider-name="rickey">
<addon id="plugin.video.stalkervod" name="Stalker VOD Client" version="0.0.5" provider-name="rickey">
<requires>
<import addon="xbmc.python" version="3.0.1"/>
<import addon="script.module.requests" version="2.27.1"/>
Expand All @@ -21,8 +21,14 @@
<screenshot>resources/media/screenshot_1.png</screenshot>
<screenshot>resources/media/screenshot_2.png</screenshot>
<screenshot>resources/media/screenshot_3.png</screenshot>
<screenshot>resources/media/screenshot_4.png</screenshot>
</assets>
<news>
v0.0.5 (2024-03-23)
- Fix for portals with no stalker_portal in context path
Please try re-entering the server address based on the format provided if it does not work after upgrading to v0.0.5
https://github.com/rickeylohia/plugin.video.stalkervod/issues/12

v0.0.4 (2024-01-20)
- Refactor, debug logs and fix for https://github.com/rickeylohia/plugin.video.stalkervod/issues/10

Expand Down
6 changes: 3 additions & 3 deletions plugin.video.stalkervod/lib/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@ class Api:
def __call_stalker_portal(params):
"""Method to call portal"""
retries = 0
url = G.portal_config.portal_base_url + G.portal_config.context_path
url = G.portal_config.portal_url
mac_cookie = G.portal_config.mac_cookie
portal_url = G.portal_config.portal_url
referrer = G.portal_config.server_address
auth = Auth()
while True:
token = auth.get_token(retries > 0)
Logger.debug("Calling Stalker portal {} with params {}".format(url, json.dumps(params)))
response = requests.get(url=url,
headers={'Cookie': mac_cookie,
'Authorization': 'Bearer ' + token,
'X-User-Agent': 'Model: MAG250; Link: WiFi', 'Referrer': portal_url},
'X-User-Agent': 'Model: MAG250; Link: WiFi', 'Referrer': referrer},
params=params,
timeout=30
)
Expand Down
10 changes: 5 additions & 5 deletions plugin.video.stalkervod/lib/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ def __init__(self):
self.__token_path = os.path.join(G.addon_config.token_path, self.__TOKEN_FILE)
self.__token = Token()
self.__load_cache()
self.__url = G.portal_config.portal_base_url + G.portal_config.context_path
self.__url = G.portal_config.portal_url
self.__mac_cookie = G.portal_config.mac_cookie
self.__portal_url = G.portal_config.portal_url
self.__referrer = G.portal_config.server_address

def get_token(self, refresh_token):
"""Get Token"""
Expand All @@ -40,7 +40,7 @@ def get_token(self, refresh_token):
Logger.debug('Getting token from {}'.format(self.__url))
response = requests.get(url=self.__url,
headers={'Cookie': self.__mac_cookie, 'X-User-Agent': 'Model: MAG250; Link: WiFi',
'Referrer': self.__portal_url},
'Referrer': self.__referrer},
params={'type': 'stb', 'action': 'handshake'},
timeout=30
)
Expand All @@ -65,7 +65,7 @@ def __refresh_token(self):
Logger.debug('Refreshing token')
requests.get(url=self.__url,
headers={'Cookie': self.__mac_cookie, 'Authorization': 'Bearer ' + self.__token.value,
'X-User-Agent': 'Model: MAG250; Link: WiFi', 'Referrer': self.__portal_url},
'X-User-Agent': 'Model: MAG250; Link: WiFi', 'Referrer': self.__referrer},
params={
'type': 'stb',
'action': 'get_profile',
Expand All @@ -89,7 +89,7 @@ def __refresh_token(self):
)
requests.get(url=self.__url,
headers={'Cookie': self.__mac_cookie, 'Authorization': 'Bearer ' + self.__token.value,
'X-User-Agent': 'Model: MAG250; Link: WiFi', 'Referrer': self.__portal_url},
'X-User-Agent': 'Model: MAG250; Link: WiFi', 'Referrer': self.__referrer},
params={
'type': 'watchdog', 'action': 'get_events',
'init': '0', 'cur_play_type': '1', 'event_active_id': '0'
Expand Down
23 changes: 18 additions & 5 deletions plugin.video.stalkervod/lib/globals.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class PortalConfig:
signature: str = None
serial_number: str = None
portal_base_url: str = None
context_path: str = None
server_address: str = None


@dataclasses.dataclass
Expand Down Expand Up @@ -61,13 +61,11 @@ def init_globals(self):
self.addon_config.token_path = token_path
self.addon_config.handle = int(sys.argv[1])
self.portal_config.mac_cookie = 'mac=' + self.__addon.getSetting('mac_address')
self.portal_config.portal_url = self.__addon.getSetting('server_address')
self.portal_config.device_id = self.__addon.getSetting('device_id')
self.portal_config.device_id_2 = self.__addon.getSetting('device_id_2')
self.portal_config.signature = self.__addon.getSetting('signature')
self.portal_config.serial_number = self.__addon.getSetting('serial_number')
self.portal_config.portal_base_url = self.__get_portal_base_url()
self.portal_config.context_path = '/stalker_portal/server/load.php'
self.__set_portal_addresses()

def get_handle(self):
"""Get addon handle"""
Expand All @@ -83,8 +81,23 @@ def get_plugin_url(self, params):

def __get_portal_base_url(self):
"""Get portal base url"""
split_url = urlsplit(self.portal_config.portal_url)
split_url = urlsplit(self.portal_config.server_address)
return split_url.scheme + '://' + split_url.netloc

def __set_portal_addresses(self):
"""Set portal urls"""
self.portal_config.server_address = self.__addon.getSetting('server_address')
self.portal_config.portal_base_url = self.__get_portal_base_url()
self.portal_config.portal_url = self.get_portal_url()

def get_portal_url(self):
"""Get portal url"""
portal_url = self.portal_config.portal_base_url + '/stalker_portal/server/load.php'
if self.portal_config.server_address.endswith('/c/'):
portal_url = self.portal_config.server_address.replace('/c/', '') + '/server/load.php'
elif self.portal_config.server_address.endswith('/c'):
portal_url = self.portal_config.server_address.replace('/c', '') + '/server/load.php'
return portal_url


G = GlobalVariables()
Original file line number Diff line number Diff line change
Expand Up @@ -21,33 +21,37 @@ msgid "Portal"
msgstr ""

msgctxt "#32002"
msgid "MAC Address"
msgid "Server Address (ex. http://xyz:888/c/ or http://xyz:888/stalker_portal/c/)"
msgstr ""

msgctxt "#32003"
msgid "Server Address"
msgid "Server"
msgstr ""

msgctxt "#32004"
msgid "Time Zone"
msgid "Client"
msgstr ""

msgctxt "#32005"
msgid "Advanced"
msgid "MAC Address"
msgstr ""

msgctxt "#32006"
msgid "Serial Number"
msgid "Advanced"
msgstr ""

msgctxt "#32007"
msgid "Device ID"
msgid "Serial Number"
msgstr ""

msgctxt "#32008"
msgid "Device ID 2"
msgid "Device ID"
msgstr ""

msgctxt "#32009"
msgid "Device ID 2"
msgstr ""

msgctxt "#32010"
msgid "Signature"
msgstr ""
msgstr ""
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 9 additions & 7 deletions plugin.video.stalkervod/resources/settings.xml
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<settings>
<category label="32001">
<setting label="32002" type="text" id="mac_address" default=""/>
<setting label="32002" type="lsep"/>
<setting label="32003" type="text" id="server_address" default=""/>
<setting label="32004" type="text" id="time_zone" default="America/Toronto"/>
<setting type="sep"/>
<setting label="32005" type="lsep"/>
<setting label="32006" type="text" id="serial_number" default=""/>
<setting label="32007" type="text" id="device_id" default=""/>
<setting label="32008" type="text" id="device_id_2" default=""/>
<setting label="32009" type="text" id="signature" default=""/>
<setting label="32004" type="lsep"/>
<setting label="32005" type="text" id="mac_address" default=""/>
<setting type="sep"/>
<setting label="32006" type="lsep"/>
<setting label="32007" type="text" id="serial_number" default=""/>
<setting label="32008" type="text" id="device_id" default=""/>
<setting label="32009" type="text" id="device_id_2" default=""/>
<setting label="32010" type="text" id="signature" default=""/>
</category>
</settings>

0 comments on commit 8639e9f

Please sign in to comment.