File size: 7,219 Bytes
1f9aed5 4aa133b 1f9aed5 0d18203 26c5e77 2e34bf2 1f9aed5 4aa133b 26c5e77 1f9aed5 7f2b288 1f9aed5 6bb5227 bae2850 db53419 1f9aed5 db53419 8017fbe db53419 2e34bf2 db53419 c6d4821 db53419 489ae08 db53419 2e34bf2 db53419 1f9aed5 3754d20 1f9aed5 ddeaa60 1f9aed5 aaece51 db53419 0d18203 2e34bf2 0d18203 2e34bf2 0d18203 db53419 1f9aed5 26c5e77 1f9aed5 0d18203 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 |
from flask import Flask, jsonify, abort
from filmpertutti import filmpertutti
from streamingcommunity import streaming_community
from tantifilm import tantifilm
from lordchannel import lordchannel
from streamingwatch import streamingwatch
import json
import config
import logging
from okru import okru_get_url
from animeworld import animeworld
from dictionaries import okru,STREAM
# Configure logging
FILMPERTUTTI = config.FILMPERTUTTI
STREAMINGCOMMUNITY = config.STREAMINGCOMMUNITY
MYSTERIUS = config.MYSTERIUS
TUTTIFILM = config.TUTTIFILM
TF_DOMAIN = config.TF_DOMAIN
LORDCHANNEL = config.LORDCHANNEL
STREAMINGWATCH= config.STREAMINGWATCH
ANIMEWORLD = config.ANIMEWORLD
HOST = config.HOST
PORT = int(config.PORT)
HF = config.HF
if HF == "1":
HF = "🤗️"
#Cool code to set the hugging face if the service is hosted there.
else:
HF = ""
if MYSTERIUS == "1":
from cool import cool
app = Flask(__name__)
MANIFEST = {
"id": "org.stremio.mammamia",
"version": "1.0.0",
"catalogs": [
{"type": "tv", "id": "tv_channels", "name": "TV Channels"}
],
"resources": ["stream", "catalog","meta"],
"types": ["movie", "series", "tv"],
"name": "Mamma Mia",
"description": "Addon providing HTTPS Stream for Italian Movies/Series",
"logo": "https://creazilla-store.fra1.digitaloceanspaces.com/emojis/49647/pizza-emoji-clipart-md.png"
}
def respond_with(data):
resp = jsonify(data)
resp.headers['Access-Control-Allow-Origin'] = '*'
resp.headers['Access-Control-Allow-Headers'] = '*'
return resp
@app.route('/manifest.json')
def addon_manifest():
return respond_with(MANIFEST)
@app.route('/')
def root():
return "Hello, this is a Stremio Addon providing HTTPS Stream for Italian Movies/Series, to install it add /manifest.json to the url and then add it into the Stremio search bar"
@app.route('/catalog/<type>/<id>.json')
def addon_catalog(type, id):
if type != "tv":
abort(404)
catalogs = {"metas": []}
for channel in STREAM["channels"]:
catalogs["metas"].append({
"id": channel["id"],
"type": "tv",
"name": channel["title"],
"poster": channel["poster"], # Add poster URL if available
"description": f"Watch {channel['title']}"
})
return respond_with(catalogs)
@app.route('/meta/<type>/<id>.json')
def addon_meta(type, id):
if type != "tv":
abort(404)
for channel in STREAM["channels"]:
if channel["id"] == id:
meta = {
"id": id,
"type": "tv",
"name": channel["title"],
"poster": channel["poster"], # Add poster URL if available
"description": f"Watch {channel['title']}",
"background": "", # Add background image URL if available
"logo": "", # Add logo URL if available
"videos": [{
"title": channel["title"],
"streams": [{
"title": channel["title"],
"url": channel["url"]
}]
}]
}
return respond_with({"meta": meta})
abort(404)
@app.route('/stream/<type>/<id>.json')
def addon_stream(type, id):
if type not in MANIFEST['types']:
abort(404)
streams = {'streams': []}
if type == "tv":
for channel in STREAM["channels"]:
if channel["id"] == id:
if id in okru:
channel_url = okru_get_url(id)
streams['streams'].append({
'title': channel['name'] + "OKRU",
'url': channel_url
})
else:
streams['streams'].append({
'title': channel['name'],
'url': channel['url']
})
if not streams['streams']:
abort(404)
return respond_with(streams)
else:
logging.debug(f"Handling movie or series: {id}")
if "kitsu" in id:
if ANIMEWORLD == "1":
animeworld_urls = animeworld(id)
print(animeworld_urls)
if animeworld_urls:
i = 0
for url in animeworld_urls:
if url:
if i == 0:
title = "Original"
elif i == 1:
title = "Italian"
streams['streams'].append({'title': f'{HF}Animeworld {title}', 'url': url})
i+=1
else:
if MYSTERIUS == "1":
results = cool(id)
if results:
for resolution, link in results.items():
streams['streams'].append({'title': f'{HF}Mysterious {resolution}', 'url': link})
if STREAMINGCOMMUNITY == "1":
url_streaming_community,url_720_streaming_community,quality_sc = streaming_community(id)
if url_streaming_community is not None:
if quality_sc == "1080":
streams['streams'].append({'title': f'{HF}StreamingCommunity 1080p Max', 'url': url_streaming_community})
streams['streams'].append({'title': f'{HF}StreamingCommunity 720p Max', 'url': url_720_streaming_community})
else:
streams['streams'].append({'title': f'{HF}StreamingCommunity 720p Max', 'url': url_streaming_community})
if LORDCHANNEL == "1":
url_lordchannel,quality_lordchannel =lordchannel(id)
if quality_lordchannel == "FULL HD" and url_lordchannel != None:
streams['streams'].append({'title': f'{HF}LordChannel 1080p', 'url': url_lordchannel})
elif url_lordchannel != None:
streams['streams'].append({'title': f'{HF}LordChannel 720p', 'url': url_lordchannel})
if FILMPERTUTTI == "1":
url_filmpertutti = filmpertutti(id)
if url_filmpertutti is not None:
streams['streams'].append({'title': 'Filmpertutti', 'url': url_filmpertutti})
if TUTTIFILM == "1":
url_tuttifilm = tantifilm(id)
if url_tuttifilm:
if not isinstance(url_tuttifilm, str):
for title, url in url_tuttifilm.items():
streams['streams'].append({'title': f'{HF}Tantifilm {title}', 'url': url, 'behaviorHints': {'proxyHeaders': {"request": {"Referer": "https://d000d.com/"}}, 'notWebReady': True}})
if STREAMINGWATCH == "1":
url_streamingwatch = streamingwatch(id)
if url_streamingwatch:
streams['streams'].append({'title': f'{HF}StreamingWatch 720p', 'url': url_streamingwatch})
if not streams['streams']:
abort(404)
return respond_with(streams)
return respond_with({"meta": meta})
if __name__ == '__main__':
app.run(host=HOST, port=PORT) |