__version__ = (1, 2, 0)
# ▀█▀ █ █ █▀█ █▀▄▀█ ▄▀█ █▀
# █ █▀█ █▄█ █ ▀ █ █▀█ ▄█
# https://t.me/netuzb
#
# 🔒 Licensed under the GNU AGPLv3
# 🌐 https://www.gnu.org/licenses/agpl-3.0.html
# meta desc: Browse movies by genre and watch them online via bot
# meta pic: https://te.legra.ph/file/386e8b541bb93f1537d1d.png
# meta banner: https://i.imgur.com/ccA9WkZ.jpeg
# meta developer: @wilsonmods
# scope: hikka_only
# scope: hikka_min 1.3.0
from asyncio import sleep
from ..inline.types import InlineCall
from telethon.tl.types import Message
from ..inline.types import InlineCall
from .. import loader, security, utils
link = "\n\nОснователь: Thomas Wilson"
request = """Название: (название фильма)
Жанр: (от одного до трех жанров)
Страны: (название страны)
Режиссёр: (Ф.И.О)
Длительность: (в минутах) мин.
КиноПоиск: (рейтинг)
Описание: (краткая информация о фильме)
🎨 Если возможно, ссылка на изображение баннера фильма (размер 1280x620) была бы отлично."""
@loader.tds
class CMovies(loader.Module):
"""Просмотр лучших фильмов, отсортированных по жанрам"""
strings = {
"name": "🎥 CMovies",
"no": "🤷 Этот каталог в настоящее время недоступен ни для одного фильма\n🚨 Если вы хотите помочь нам добавить фильмы то пишите мне: Thomas Wilson",
"request_example": "⭐ Спасибо за ваш интерес о подаче предложения\n – Очень просто, не сложно\n\n" + request,
"main": "🎬 My Movies - модуль который поможет вам найти интересные фильмы",
"fantastic": "🎬 Научно-фантастика - Здесь собраны все мои избранные фильмы",
"put": "🎬 Путешествие - Здесь собраны все мои избранные фильмы",
"ujas": "🎬 Ужасы - Здесь собраны все мои избранные фильмы",
"intr": "Название: Интерстеллар (2014)\nЖанр: фантастика, драма, приключения\nСтраны: США, Великобритания, Канада\nРежиссёр: Кристофер Нолан\nМузыка: Ханс Циммер\nДлительность: 169 мин.\nКиноПоиск: 8,6\nIMDb: 8,6" + link,
"lucy": "Название: Люси (2014)\nЖанр: боевик, фантастика\nСтрана: Франция\nРежиссёр: Люк Бессон\nМузыка: Эрик Серра\nДлительность: 89 мин.\nКиноПоиск: 6,7\nIMDb: 6,4" + link,
"nach": "Название: Начало (2010)\nЖанр: фантастика, боевик, триллер, драма, детектив\nСтраны: США, Великобритания\nРежиссёр: Кристофер Нолан\nМузыка: Ханс Циммер\nДлительность: 148 мин.\nКиноПоиск: 8,7\nIMDb: 8,8" + link,
"kniga": "Название: Книга Илая (2009)\nЖанр: боевик, драма\nВремя: 01:57\nРейтинг: КП 7.10 / IMDb 6.90\nСтрана: США\nРежиссер: Альберт Хьюз, Аллен Хьюз\nВ ролях: Дензел Вашингтон, Гари Олдман, Мила Кунис, Рэй Стивенсон, Дженнифер Билз, Малкольм МакДауэлл, Фрэнсис де ла Тур, Майкл Гэмбон, Том Уэйтс, Ивэн Джонс" + link,
"mars": "Название: Книга Илая (2009)\nЖанр: приключения, фантастика\nВремя: 02:21\nРейтинг: КП 7.70 / IMDb 8.00\nСтрана: США, Великобритания\nРежиссер: Ридли Скотт\nВ ролях: Мэтт Дэймон, Джессика Честейн, Чиветель Эджиофор, Кристен Уиг, Джефф Дэниелс, Майкл Пенья, Шон Бин, Кейт Мара, Себастьян Стэн, Аксель Хенни" + link,
"voyna": "Название: Война миров (2005)\nЖанр: драма, приключения\nВремя: 01:56\nРейтинг: КП 7.10 / IMDb 6.50\nСтрана: США\nРежиссер: Стивен Спилберг\nВ ролях: Том Круз, Дакота Фаннинг, Миранда Отто, Джастин Чэтвин, Тим Роббинс, Рик Гонсалес, Юл Васкес, Ленни Венито, Лиза Энн Уолтер, Энн Робинсон" + link,
"put_zem": "Название: Путешествие к Центру Земли (2008)\nЖанр: боевик, приключения, семейный, фантастика, фэнтези\nРейтинг: 6.7\nОписание: Пытаясь узнать о судьбе исчезнувшего брата, учёный, его племянник и их проводница открывают фантастичный и опасный затерянный мир в центре Земли." + link,
"put_jumanji": "Название: Джуманджи: Новый уровень (2019)\nДата выхода: 12 декабря 2019 г. (РФ)\nЖанр: фэнтези, боевик, комедия, приключения\nСтрана: США\nРежиссёр: Джейк Кэздан\nМузыка: Генри Джекман\nДлительность: 123 мин.\nКиноПоиск: 6,7\nIMDb: 6,9\n\nОписание: Чтобы спасти одного из приятелей, остальным приходится вернуться в игру. К их удивлению, правила Джуманджи изменились, и все идет наперекосяк. Чтобы выжить друзьям предстоит отправиться в путешествие по самым неизведанным и таинственным уголкам игры – от засушливой пустыни до заснеженных гор." + link,
"ujas_astral": "Название: Астрал (2010)\nЖанр: триллер, ужасы\nРейтинг: 6.8\n\nОписание: Джош и Рене переезжают с детьми в новый дом, но не успевают толком распаковать вещи, как начинаются странные события. Необъяснимо перемещаются предметы, в детской звучат странные звуки… Но настоящий кошмар начинается для родителей, когда их десятилетний сын Далтон впадает в кому. Все усилия врачей в больнице помочь мальчику безуспешны." + link,
"ujas_astral2": "Название: Астрал: Глава 2 (2013)\nЖанр: ужасы, триллер\nСтраны: США, Канада\nРежиссёр: Джеймс Ван\nМузыка: Джозеф Бишара\nДлительность: 110 мин.\nКиноПоиск: 6,5\nIMDb: 6,6\n\nОписание: Семья Ламберт стремится раскрыть тайну, из-за которой они оказались в опасной связи с миром духов. Семейство переезжает в дом матери Джоша, но, как оказывается, туда вселяются не только они. Путешествие в мир призраков не прошло для семьи Ламберт бесследно — вместе с Джошем в мир людей проник дух, который вновь хочет быть живым. И вскоре в доме снова начинают происходить странные и страшные вещи." + link,
"ujas_astral3": "Название: Астрал: Глава 3 (2015)\nЖанр: ужасы, триллер, детектив\nСтраны: Канада, Великобритания, США\nРежиссёр: Ли Уоннелл\nМузыка: Джозеф Бишара\nДлительность: 97 мин.\nКиноПоиск: 5,8\nIMDb: 6,1\n\nОписание: История о том, как одаренный экстрасенс Элис Рейнер неохотно соглашается использовать свои способности для установления связи с мертвыми, чтобы помочь девочке-подростку, которая стала мишенью для опасной сверхъестественной сущности." + link,
"ujas_astral4": "Название: Астрал 4: Последний ключ (2018)\nЖанр: ужасы, триллер, детектив\nСтраны: Канада, США\nРежиссёр: Адам Робител\nМузыка: Джозеф Бишара\nДлительность: 103 мин.\nКиноПоиск: 5,5\nIMDb: 5,7\n\nОписание: Новая глава истории об экстрасенсе, которая умеет разговаривать с мёртвыми. Детство Элизы было трудным - жестокий отец считал, что девочка придумывает истории о потустороннем, поэтому бил её и запирал в подвале. Однажды, сидя в тёмном подвале, Элиза начинает общаться с коварным призраком, который убеждает её открыть дверь. Вырвавшееся наружу зло тут же убивает мать девочки. Много лет спустя Элиза всё ещё пытается восстановить в памяти события той ужасной ночи, когда получает просьбу о помощи. Мужчину одолели призраки, и живёт он в том самом доме, где прошло детство Элизы." + link,
"bobrovi": "Название: Последний богатырь\nЖанр: Фантастика\nСтраны: Россия\nРежиссёр: Дмитрий Дьяченко\nДлительность: 108 мин.\nКиноПоиск: 6,7/10\n\nОписание: Главный герой, Иван Найдёнов (Виктор Хориняк) живёт в Москве. С материальной точки зрения Иван живёт неплохо — под именем «белый маг Светозар» он участвует в телешоу «Битва магов», ведёт частный приём состоятельных клиенток, имеет квартиру в Москва-Сити, но он очень одинок. Иван — сирота, воспитывался в детдоме, он холост, и никого из близких у него нет; единственный человек, с которым он общается более или менее регулярно — ворчливая приходящая домработница Галина." + link,
"fantastic_button": "🔥 Фантастика",
"put_button": "🌴 Путешествие",
"horror_button": "🧟♀️ Ужасы",
"comedy_button": "🎭 Комедия",
"detective_button": "🕵️ Детектив",
"drama_button": "💌 Драма",
"x": "🔻 Закрыть",
"request_to_me": "↗️ Подать заявку",
"back": "↩️ Назад",
"watch": "💾 Смотреть онлайн",
}
async def cmoviescmd(self, message):
"""> Посмотреть каталог фильмов"""
await self.inline.form(
text = f"{self.strings('main')}",
reply_markup=[
[{
"text": self.strings('fantastic_button'),
"callback": self.fantastic
},
{
"text": self.strings('put_button'),
"callback": self.put
}],
[{
"text": self.strings('horror_button'),
"callback": self.ujas
},
{
"text": self.strings('drama_button'),
"callback": self.no
}],
[{
"text": self.strings('comedy_button'),
"callback": self.no
},
{
"text": self.strings('detective_button'),
"callback": self.no
}],
[{
"text": self.strings("x"),
"action": "close"
}]],
**{"photo": "https://raw.githubusercontent.com/Netuzb/umod_mods/main/mymovies.jpg"},
message=message,
)
async def main(self, call: InlineCall) -> None:
await call.edit(
text = f"{self.strings('main')}",
reply_markup=[
[{
"text": self.strings('fantastic_button'),
"callback": self.fantastic
},
{
"text": self.strings('put_button'),
"callback": self.put
}],
[{
"text": self.strings('horror_button'),
"callback": self.ujas
},
{
"text": self.strings('drama_button'),
"callback": self.no
}],
[{
"text": self.strings('comedy_button'),
"callback": self.no
},
{
"text": self.strings('detective_button'),
"callback": self.no
}],
[{
"text": self.strings("x"),
"action": "close"
}]],
**{"photo": "https://raw.githubusercontent.com/Netuzb/umod_mods/main/mymovies.jpg"},
)
async def no(self, call: InlineCall) -> None:
await call.edit(
text = f"{self.strings('no')}",
reply_markup=[
[{
"text": self.strings("back"),
"callback": self.main
},{
"text": self.strings("x"),
"action": "close"
}]],
**{"photo": "https://t.me/anonyusa/127"},
)
async def creqcmd(self, message):
"""> Информация о добавлении предложения фильма"""
await self.inline.form(
text = f"{self.strings('request_example')}",
reply_markup=[
[{
"text": self.strings('request_to_me'),
"url": "https://t.me/netuzb",
}],
[{
"text": self.strings("x"),
"action": "close"
}]],
**{"photo": "https://t.me/anonyusa/131"},
message=message,
)
# ФАНТАСТИКА / Thomas Wilson
# ФАНТАСТИКА / Thomas Wilson
# ФАНТАСТИКА / Thomas Wilson
async def fantastic(self, call: InlineCall):
await call.edit(
text = f"{self.strings('fantastic')}",
reply_markup=[
[{
"text": "Люси (2014)",
"callback": self.lucy
},{
"text": "Интерстеллар (2014)",
"callback": self.intr
}],
[{
"text": "Начало (2010)",
"callback": self.nach
},{
"text": "Книга Илая (2009)",
"callback": self.kniga
}],
[{
"text": "Марсианин (2015)",
"callback": self.mars
},{
"text": "Война миров (2005)",
"callback": self.voyna
}],
[{
"text": "Последний богатырь (2017)",
"callback": self.bobrovi
}],
[{
"text": self.strings("back"),
"callback": self.main
},{
"text": self.strings("x"),
"action": "close"
}]],
**{"photo": "https://raw.githubusercontent.com/Netuzb/umod_mods/main/mymovies.jpg"},
)
async def lucy(self, call: InlineCall):
await call.edit(
text = f"{self.strings('lucy')}",
reply_markup=[
[{
"text": self.strings('back'),
"callback": self.fantastic
},
{
"text": self.strings('watch'),
"url": "https://t.me/HDFilmsBot"
}]],
**{"photo": "https://t.me/anonyusa/115"},
)
async def intr(self, call: InlineCall):
await call.edit(
text = f"{self.strings('intr')}",
reply_markup=[
[{
"text": self.strings('back'),
"callback": self.fantastic
},
{
"text": self.strings('watch'),
"url": "https://t.me/HDFilmsBot"
}]],
**{"photo": "https://t.me/anonyusa/118"},
)
async def nach(self, call: InlineCall):
await call.edit(
text = f"{self.strings('nach')}",
reply_markup=[
[{
"text": self.strings('back'),
"callback": self.fantastic
},
{
"text": self.strings('watch'),
"url": "https://t.me/HDFilmsBot"
}]],
**{"photo": "https://t.me/anonyusa/119"},
)
async def kniga(self, call: InlineCall):
await call.edit(
text = f"{self.strings('kniga')}",
reply_markup=[
[{
"text": self.strings('back'),
"callback": self.fantastic
},
{
"text": self.strings('watch'),
"url": "https://t.me/HDFilmsBot"
}]],
**{"photo": "https://t.me/anonyusa/120"},
)
async def mars(self, call: InlineCall):
await call.edit(
text = f"{self.strings('mars')}",
reply_markup=[
[{
"text": self.strings('back'),
"callback": self.fantastic
},
{
"text": self.strings('watch'),
"url": "https://t.me/HDFilmsBot"
}]],
**{"photo": "https://t.me/anonyusa/121"},
)
async def voyna(self, call: InlineCall):
await call.edit(
text = f"{self.strings('voyna')}",
reply_markup=[
[{
"text": self.strings('back'),
"callback": self.fantastic
},
{
"text": self.strings('watch'),
"url": "https://t.me/HDFilmsBot"
}]],
**{"photo": "https://t.me/anonyusa/122"},
)
async def bobrovi(self, call: InlineCall):
await call.edit(
text = f"{self.strings('bobrovi')}",
reply_markup=[
[{
"text": self.strings('back'),
"callback": self.fantastic
},
{
"text": self.strings('watch'),
"url": "https://t.me/HDFilmsBot"
}]],
**{"photo": "https://t.me/anonyusa/132"},
)
# ПУТЕШЕСТВИЕ / Thomas Wilson
# ПУТЕШЕСТВИЕ / Thomas Wilson
# ПУТЕШЕСТВИЕ / Thomas Wilson
async def put(self, call: InlineCall):
await call.edit(
text = f"{self.strings('put')}",
reply_markup=[
[{
"text": "Путешествие к Центру Земли (2008)",
"callback": self.put_zem
}],
[{
"text": "Джуманджи: Новый Уровень (2019)",
"callback": self.put_jumanji
}],
[{
"text": self.strings("back"),
"callback": self.main
},{
"text": self.strings("x"),
"action": "close"
}]],
**{"photo": "https://raw.githubusercontent.com/Netuzb/umod_mods/main/mymovies.jpg"},
)
async def put_zem(self, call: InlineCall):
await call.edit(
text = f"{self.strings('put_zem')}",
reply_markup=[
[{
"text": self.strings('back'),
"callback": self.put
},
{
"text": self.strings('watch'),
"url": "https://t.me/HDFilmsBot"
}]],
**{"photo": "https://t.me/anonyusa/123"},
)
async def put_jumanji(self, call: InlineCall):
await call.edit(
text = f"{self.strings('put_jumanji')}",
reply_markup=[
[{
"text": self.strings('back'),
"callback": self.put
},
{
"text": self.strings('watch'),
"url": "https://t.me/HDFilmsBot"
}]],
**{"photo": "https://t.me/anonyusa/125"},
)
# УЖАСЫ / Thomas Wilson
# УЖАСЫ / Thomas Wilson
# УЖАСЫ / Thomas Wilson
async def ujas(self, call: InlineCall):
await call.edit(
text = f"{self.strings('ujas')}",
reply_markup=[
[{
"text": "Астрал (2010)",
"callback": self.ujas_astral
}],
[{
"text": "Астрал: Глава 2 (2013)",
"callback": self.ujas_astral2
}],
[{
"text": "Астрал: Глава 3 (2015)",
"callback": self.ujas_astral3
}],
[{
"text": "Астрал 4: Последний ключ (2018)",
"callback": self.ujas_astral4
}],
[{
"text": self.strings("back"),
"callback": self.main
},{
"text": self.strings("x"),
"action": "close"
}]],
**{"photo": "https://raw.githubusercontent.com/Netuzb/umod_mods/main/mymovies.jpg"},
)
async def ujas_astral(self, call: InlineCall):
await call.edit(
text = f"{self.strings('ujas_astral')}",
reply_markup=[
[{
"text": self.strings('back'),
"callback": self.ujas
},
{
"text": self.strings('watch'),
"url": "https://t.me/HDFilmsBot"
}]],
**{"photo": "https://t.me/anonyusa/126"},
)
async def ujas_astral2(self, call: InlineCall):
await call.edit(
text = f"{self.strings('ujas_astral2')}",
reply_markup=[
[{
"text": self.strings('back'),
"callback": self.ujas
},
{
"text": self.strings('watch'),
"url": "https://t.me/HDFilmsBot"
}]],
**{"photo": "https://t.me/anonyusa/128"},
)
async def ujas_astral3(self, call: InlineCall):
await call.edit(
text = f"{self.strings('ujas_astral3')}",
reply_markup=[
[{
"text": self.strings('back'),
"callback": self.ujas
},
{
"text": self.strings('watch'),
"url": "https://t.me/HDFilmsBot"
}]],
**{"photo": "https://t.me/anonyusa/129"},
)
async def ujas_astral4(self, call: InlineCall):
await call.edit(
text = f"{self.strings('ujas_astral4')}",
reply_markup=[
[{
"text": self.strings('back'),
"callback": self.ujas
},
{
"text": self.strings('watch'),
"url": "https://t.me/HDFilmsBot"
}]],
**{"photo": "https://t.me/anonyusa/130"},
)