Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[plugin.video.stalkervod] 0.0.5 #4489

Merged
merged 1 commit into from
Mar 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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>
Loading