mirror of
https://github.com/nirvana-7777/script.service.ultimate.git
synced 2026-10-09 01:12:31 +02:00
Add movetv
This commit is contained in:
@@ -58,6 +58,8 @@ class MoveTVConfig:
|
||||
# -------------------------------------------------------------------------
|
||||
DTYPE_DASH: int = 1
|
||||
|
||||
DEFAULT_LANG: int = 1
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# Header builders
|
||||
# -------------------------------------------------------------------------
|
||||
|
||||
@@ -197,6 +197,8 @@ class MoveTVProvider(StreamingProvider):
|
||||
|
||||
payload = {
|
||||
"customerId": session["customer_id"],
|
||||
"customerProfileId": session["customer_profile_id"],
|
||||
"lang": MoveTVConfig.DEFAULT_LANG,
|
||||
"appVersion": MoveTVConfig.APP_VERSION,
|
||||
}
|
||||
response = self.http_manager.post(
|
||||
|
||||
+8
-2
@@ -343,7 +343,10 @@ def setup_m3u_routes(app, manager, service):
|
||||
provider_list = manager.list_providers()
|
||||
for provider_name in provider_list:
|
||||
try:
|
||||
channels = manager.get_subscribed_channels(provider_name)
|
||||
channels = sorted(
|
||||
manager.get_subscribed_channels(provider_name),
|
||||
key=lambda ch: (ch.channel_number is None, ch.channel_number or 0)
|
||||
)
|
||||
|
||||
for channel in channels:
|
||||
# Generate M3U entry for each subscribed channel
|
||||
@@ -441,7 +444,10 @@ def setup_m3u_routes(app, manager, service):
|
||||
provider_list = manager.list_providers()
|
||||
for provider_name in provider_list:
|
||||
try:
|
||||
channels = manager.get_subscribed_channels(provider_name)
|
||||
channels = sorted(
|
||||
manager.get_subscribed_channels(provider_name),
|
||||
key=lambda ch: (ch.channel_number is None, ch.channel_number or 0)
|
||||
)
|
||||
|
||||
# Get provider label
|
||||
try:
|
||||
|
||||
+18
-10
@@ -531,6 +531,14 @@ class UltimateService:
|
||||
response.content_type = "application/json"
|
||||
return json.dumps({"error": f"Failed to fetch manifest: {str(fetch_err)}"})
|
||||
|
||||
@staticmethod
|
||||
def _sort_channels(channels):
|
||||
"""Sort channels by channel_number ascending; channels without a number come last."""
|
||||
return sorted(
|
||||
channels,
|
||||
key=lambda ch: (ch.channel_number is None, ch.channel_number or 0)
|
||||
)
|
||||
|
||||
def _generate_m3u_content(
|
||||
self, providers=None, save_to_cache=True, cache_filename=None
|
||||
):
|
||||
@@ -566,8 +574,8 @@ class UltimateService:
|
||||
for provider_name in providers_to_process:
|
||||
try:
|
||||
# Get channels for this provider
|
||||
channels = self.manager.get_channels(
|
||||
provider_name=provider_name, fetch_manifests=False
|
||||
channels = self._sort_channels(
|
||||
self.manager.get_channels(provider_name=provider_name, fetch_manifests=False)
|
||||
)
|
||||
|
||||
# Add each channel to M3U
|
||||
@@ -631,8 +639,8 @@ class UltimateService:
|
||||
for provider_name in providers_to_process:
|
||||
try:
|
||||
# Get channels for this provider
|
||||
channels = self.manager.get_channels(
|
||||
provider_name=provider_name, fetch_manifests=False
|
||||
channels = self._sort_channels(
|
||||
self.manager.get_channels(provider_name=provider_name, fetch_manifests=False)
|
||||
)
|
||||
|
||||
# Get provider label
|
||||
@@ -733,8 +741,8 @@ class UltimateService:
|
||||
for provider_name in providers_to_process:
|
||||
try:
|
||||
# Get channels for this provider
|
||||
channels = self.manager.get_channels(
|
||||
provider_name=provider_name, fetch_manifests=False
|
||||
channels = self._sort_channels(
|
||||
self.manager.get_channels(provider_name=provider_name, fetch_manifests=False)
|
||||
)
|
||||
|
||||
# Get provider label
|
||||
@@ -852,8 +860,8 @@ class UltimateService:
|
||||
for provider_name in providers_to_process:
|
||||
try:
|
||||
# Get channels for this provider
|
||||
channels = self.manager.get_channels(
|
||||
provider_name=provider_name, fetch_manifests=False
|
||||
channels = self._sort_channels(
|
||||
self.manager.get_channels(provider_name=provider_name, fetch_manifests=False)
|
||||
)
|
||||
|
||||
# Get provider instance for label and proxy config
|
||||
@@ -1181,8 +1189,8 @@ class UltimateService:
|
||||
for provider_name in providers_to_process:
|
||||
try:
|
||||
# Get channels for this provider
|
||||
channels = self.manager.get_channels(
|
||||
provider_name=provider_name, fetch_manifests=False
|
||||
channels = self._sort_channels(
|
||||
self.manager.get_channels(provider_name=provider_name, fetch_manifests=False)
|
||||
)
|
||||
|
||||
# Get provider instance for label and proxy config
|
||||
|
||||
Reference in New Issue
Block a user