Skip to content
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
30 changes: 1 addition & 29 deletions .github/.domain/domain_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import os
import json
from datetime import datetime
from urllib.parse import urlparse, unquote
from urllib.parse import urlparse


# External libraries
Expand All @@ -22,34 +22,6 @@
def get_headers():
return ua.headers.get()

def get_tld(url_str):
try:
parsed = urlparse(unquote(url_str))
domain = parsed.netloc.lower()
parts = domain.split('.')
return parts[-1] if len(parts) >= 2 else None

except Exception:
return None

def get_base_domain(url_str):
try:
parsed = urlparse(url_str)
domain = parsed.netloc.lower()
parts = domain.split('.')
return '.'.join(parts[:-1]) if len(parts) > 2 else parts[0]

except Exception:
return None

def get_base_url(url_str):
try:
parsed = urlparse(url_str)
return f"{parsed.scheme}://{parsed.netloc}"

except Exception:
return None

def log(msg, level='INFO'):
levels = {
'INFO': '[ ]',
Expand Down
2 changes: 1 addition & 1 deletion .github/.domain/domains.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,4 @@
"old_domain": "cam",
"time_change": "2025-12-18 15:25:18"
}
}
}
1 change: 0 additions & 1 deletion .github/.domain/loc-badge.json

This file was deleted.

3 changes: 0 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,10 +109,8 @@ jobs:
shell: bash
run: |
pyinstaller --onefile --hidden-import=pycryptodomex --hidden-import=ua_generator \
--hidden-import=qbittorrentapi --hidden-import=qbittorrent \
--hidden-import=bs4 --hidden-import=httpx --hidden-import=rich --hidden-import=tqdm \
--hidden-import=m3u8 --hidden-import=psutil --hidden-import=unidecode \
--hidden-import=python-dotenv --hidden-import=dotenv \
--hidden-import=jsbeautifier --hidden-import=jsbeautifier.core \
--hidden-import=jsbeautifier.javascript --hidden-import=jsbeautifier.javascript.beautifier \
--hidden-import=jsbeautifier.unpackers --hidden-import=jsbeautifier.unpackers.packer \
Expand All @@ -127,7 +125,6 @@ jobs:
--hidden-import=Cryptodome.Cipher --hidden-import=Cryptodome.Cipher.AES \
--hidden-import=Cryptodome.Util --hidden-import=Cryptodome.Util.Padding \
--hidden-import=Cryptodome.Random \
--hidden-import=telebot \
--hidden-import=curl_cffi --hidden-import=_cffi_backend \
--collect-all curl_cffi \
--additional-hooks-dir=pyinstaller/hooks \
Expand Down
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,9 @@ downloaded_files/
Video
note.txt
cmd.txt
bot_config.json
scripts.json
active_requests.json
working_proxies.json
start.sh
.DS_Store
GUI/db.sqlite3
GUI/db.sqlite3
7 changes: 4 additions & 3 deletions GUI/searchapp/api/animeunity.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@


# External utilities
from StreamingCommunity.Util.config_json import config_manager
from StreamingCommunity.Api.Site.animeunity.util.ScrapeSerie import ScrapeSerieAnime
from StreamingCommunity.Util import config_manager
from StreamingCommunity.Api.Template.loader import get_folder_name
from StreamingCommunity.Api.Service.animeunity.util.ScrapeSerie import ScrapeSerieAnime



Expand All @@ -29,7 +30,7 @@ def _load_config(self):
def _get_search_fn(self):
"""Lazy load the search function."""
if self._search_fn is None:
module = importlib.import_module("StreamingCommunity.Api.Site.animeunity")
module = importlib.import_module(f"StreamingCommunity.Api.{get_folder_name()}.animeunity")
self._search_fn = getattr(module, "search")
return self._search_fn

Expand Down
7 changes: 4 additions & 3 deletions GUI/searchapp/api/streamingcommunity.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@


# External utilities
from StreamingCommunity.Util.config_json import config_manager
from StreamingCommunity.Api.Site.streamingcommunity.util.ScrapeSerie import GetSerieInfo
from StreamingCommunity.Util import config_manager
from StreamingCommunity.Api.Template.loader import get_folder_name
from StreamingCommunity.Api.Service.streamingcommunity.util.ScrapeSerie import GetSerieInfo


class StreamingCommunityAPI(BaseStreamingAPI):
Expand All @@ -28,7 +29,7 @@ def _load_config(self):
def _get_search_fn(self):
"""Lazy load the search function."""
if self._search_fn is None:
module = importlib.import_module("StreamingCommunity.Api.Site.streamingcommunity")
module = importlib.import_module(f"StreamingCommunity.Api.{get_folder_name()}.streamingcommunity")
self._search_fn = getattr(module, "search")
return self._search_fn

Expand Down
103 changes: 0 additions & 103 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,21 +129,6 @@ downloader.download()

See [MP4 example](./Test/Downloads/MP4.py) for complete usage.

<summary>🧲 TOR</summary>

Download content via torrent magnet links.

```python
from StreamingCommunity import TOR_downloader

client = TOR_downloader()

client.add_magnet_link("magnet:?xt=urn:btih:example_hash&dn=example_name", save_path=".")
client.start_download()
```

See [Torrent example](./Test/Downloads/TOR.py) for complete usage.

<summary>🎞️ DASH</summary>

```python
Expand Down Expand Up @@ -223,21 +208,6 @@ You can change some behaviors by tweaking the configuration file. The configurat
#### Additional Options
- `add_siteName`: Appends site_name to root path (can be changed with `--add_siteName true/false`)

<summary>🔄 QBIT_CONFIG Settings</summary>

```json
{
"QBIT_CONFIG": {
"host": "192.168.1.51",
"port": "6666",
"user": "admin",
"pass": "adminadmin"
}
}
```

To enable qBittorrent integration, follow the setup guide [here](https://github.com/lgallard/qBittorrent-Controller/wiki/How-to-enable-the-qBittorrent-Web-UI).

<summary>📥 M3U8_DOWNLOAD Settings</summary>

```json
Expand Down Expand Up @@ -440,7 +410,6 @@ python test_run.py --global -s "cars"
python test_run.py --category 1 # Search in anime category
python test_run.py --category 2 # Search in movies & series
python test_run.py --category 3 # Search in series
python test_run.py --category 4 # Search in torrent category
```

### PyPI Installation Usage
Expand Down Expand Up @@ -590,78 +559,6 @@ make LOCAL_DIR=/path/to/download run-container
The `run-container` command mounts also the `config.json` file, so any change to the configuration file is reflected immediately without having to rebuild the image.


# Telegram Usage

<summary>⚙️ Basic Configuration</summary>

The bot was created to replace terminal commands and allow interaction via Telegram. Each download runs within a screen session, enabling multiple downloads to run simultaneously.

To run the bot in the background, simply start it inside a screen session and then press Ctrl + A, followed by D, to detach from the session without stopping the bot.

Command Functions:

🔹 /start – Starts a new search for a download. This command performs the same operations as manually running the script in the terminal with test_run.py.

🔹 /list – Displays the status of active downloads, with options to:

Stop an incorrect download using /stop <ID>.

View the real-time output of a download using /screen <ID>.

⚠ Warning: If a download is interrupted, incomplete files may remain in the folder specified in config.json. These files must be deleted manually to avoid storage or management issues.

🛠 Configuration: Currently, the bot's settings are stored in the config.json file, which is located in the same directory as the telegram_bot.py script.

## .env Example:

You need to create an .env file and enter your Telegram token and user ID to authorize only one user to use it

```
TOKEN_TELEGRAM=IlTuo2131TOKEN$12D3Telegram
AUTHORIZED_USER_ID=12345678
DEBUG=False
```

<summary>📥 Dependencies & Launch</summary>

Install dependencies:
```bash
pip install -r requirements.txt
```

Start the bot (from /StreamingCommunity/TelegramHelp):
```bash
python3 telegram_bot.py
```d
- 🔹 `/list` – Displays the status of active downloads, with options to:
- Stop an incorrect download using `/stop <ID>`
- View the real-time output of a download using `/screen <ID>`

⚠️ **Warning:** If a download is interrupted, incomplete files may remain in the folder specified in config.json. These files must be deleted manually.

#### Setup
1. Create an `.env` file with your Telegram token and user ID:
```env
TOKEN_TELEGRAM=IlTuo2131TOKEN$12D3Telegram
AUTHORIZED_USER_ID=12345678
DEBUG=False
```

2. Install dependencies:
```bash
pip install -r requirements.txt
```

3. Start the bot (from `/StreamingCommunity/TelegramHelp`):
```bash
python3 telegram_bot.py
```

**Running in background:**
Start the bot inside a screen session and press Ctrl + A, followed by D, to detach from the session without stopping the bot.

---

# Tutorials

- [Windows](https://www.youtube.com/watch?v=mZGqK4wdN-k)
Expand Down
Loading