Enhance file parsing and update README to reflect configuration format improvements
This commit is contained in:
parent
553125721f
commit
23e01315ba
14
README.MD
14
README.MD
@ -52,17 +52,23 @@ The script uses several files for configuration:
|
|||||||
- `**` allows up to six additional characters.
|
- `**` allows up to six additional characters.
|
||||||
- `#` at the start includes numeric characters (up to three).
|
- `#` at the start includes numeric characters (up to three).
|
||||||
- `##` includes numeric characters (up to six).
|
- `##` includes numeric characters (up to six).
|
||||||
- `channels.txt`: List of channel usernames (the part after `t.me/`) to monitor (NB You need to JOIN the channel you want to monitor).
|
|
||||||
|
**Note: Separate keywords using commas. Keywords can span multiple lines for readability; newlines are ignored.**
|
||||||
|
- `channels.txt`: List of channel usernames (the part after `t.me/`) to monitor
|
||||||
|
- Separate channel names with commas, and feel free to list them across multiple lines for better readability. Newlines between names are ignored.
|
||||||
|
**Note: Ensure you have joined any channel you wish to monitor.**
|
||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
|
|
||||||
- `keywords.txt`
|
- `keywords.txt`
|
||||||
```
|
```
|
||||||
hello*, world**, #123, ##123456, #or_any_combination**
|
hello*, world**, #123,
|
||||||
|
##123456, #or_any_combination**
|
||||||
```
|
```
|
||||||
- `channels.txt`
|
- `channels.txt`
|
||||||
```
|
```
|
||||||
python, daily_news, target3, target4
|
python, daily_news,
|
||||||
|
target3, target4
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
@ -77,7 +83,7 @@ python streaming_overseer.py
|
|||||||
## Operational Details
|
## Operational Details
|
||||||
|
|
||||||
- If not yet saved, the script will ask for your API ID, API hash, phone number, username, and bot token.
|
- If not yet saved, the script will ask for your API ID, API hash, phone number, username, and bot token.
|
||||||
- The script listens for new messages in the specified channels.
|
- The script listens for new messages in the specified channels (You need to have joined the channels you intend to monitor).
|
||||||
- If a message contains any of the specified keywords, it is forwarded to the private channel.
|
- If a message contains any of the specified keywords, it is forwarded to the private channel.
|
||||||
- The script sends a startup message to the private channel when it begins monitoring.
|
- The script sends a startup message to the private channel when it begins monitoring.
|
||||||
- Use Ctrl+C to safely shut down the monitoring tool.
|
- Use Ctrl+C to safely shut down the monitoring tool.
|
||||||
@ -48,10 +48,15 @@ async def fetch_channel_id(credentials):
|
|||||||
return credentials
|
return credentials
|
||||||
|
|
||||||
|
|
||||||
def load_patterns():
|
def load_entries_from_file(file_path):
|
||||||
with open(KEYWORDS_FILE, 'r', encoding='utf-8') as file:
|
with open(file_path, 'r', encoding='utf-8') as file:
|
||||||
keywords = [x.strip() for x in file.read().split(',')]
|
content = file.read()
|
||||||
|
entries = [x.strip() for x in content.replace('\n', '').split(',') if x.strip()]
|
||||||
|
return entries
|
||||||
|
|
||||||
|
|
||||||
|
def load_patterns():
|
||||||
|
keywords = load_entries_from_file(KEYWORDS_FILE)
|
||||||
word_patterns = {}
|
word_patterns = {}
|
||||||
emoji_pattern = r'[\U0001F600-\U0001F64F\U0001F300-\U0001F5FF\U0001F680-\U0001F6FF\U0001F1E0-\U0001F1FF]'
|
emoji_pattern = r'[\U0001F600-\U0001F64F\U0001F300-\U0001F5FF\U0001F680-\U0001F6FF\U0001F1E0-\U0001F1FF]'
|
||||||
|
|
||||||
@ -74,7 +79,6 @@ def load_patterns():
|
|||||||
return word_patterns
|
return word_patterns
|
||||||
|
|
||||||
|
|
||||||
# Function to handle signals
|
|
||||||
def signal_handler(signal, frame):
|
def signal_handler(signal, frame):
|
||||||
print('Detected Ctrl+C! Gracefully shutting down.')
|
print('Detected Ctrl+C! Gracefully shutting down.')
|
||||||
exit(0)
|
exit(0)
|
||||||
@ -86,7 +90,7 @@ async def main():
|
|||||||
await client.start(phone=creds['phone'])
|
await client.start(phone=creds['phone'])
|
||||||
|
|
||||||
word_patterns = load_patterns()
|
word_patterns = load_patterns()
|
||||||
channels = [x.strip() for x in open(CHANNELS_FILE, 'r').read().split(',')]
|
channels = load_entries_from_file(CHANNELS_FILE)
|
||||||
channel_id = creds['channel_id'] # Use the channel ID from credentials
|
channel_id = creds['channel_id'] # Use the channel ID from credentials
|
||||||
await client.send_message(channel_id, f"Listening to {', '.join(channels)}...")
|
await client.send_message(channel_id, f"Listening to {', '.join(channels)}...")
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user