Compare commits
5
Commits
623bc9b74e
...
ec2696ee43
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ec2696ee43 | ||
|
|
52ba892d6f | ||
|
|
5478a1032c | ||
|
|
b11c840688 | ||
|
|
15994f11b1 |
@@ -0,0 +1,3 @@
|
|||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class PodcastAggregatorConfig(AppConfig):
|
||||||
|
default_auto_field = 'django.db.models.BigAutoField'
|
||||||
|
name = 'podcast_aggregator'
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
from django.db import models
|
||||||
|
|
||||||
|
# Create your models here.
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
import requests
|
||||||
|
import xmltodict
|
||||||
|
from urllib import request as urlrequest
|
||||||
|
from apps.telegram_communication.utils import telegramUtils
|
||||||
|
|
||||||
|
|
||||||
|
def rss_to_dict(url):
|
||||||
|
response = requests.get(url)
|
||||||
|
data = xmltodict.parse(response.content)
|
||||||
|
|
||||||
|
#print(data['rss'])
|
||||||
|
|
||||||
|
title = data['rss']['channel']['title']
|
||||||
|
|
||||||
|
#Get the keys if needed of debug
|
||||||
|
#print(data['rss'].keys())
|
||||||
|
|
||||||
|
#use first object as it's ordered in a chronological order
|
||||||
|
today_object = data['rss']['channel']['item'][0]
|
||||||
|
today_title = today_object['title']
|
||||||
|
today_podcast_url = data['rss']['channel']['item'][0]['enclosure']['@url']
|
||||||
|
|
||||||
|
return title,today_title,today_podcast_url
|
||||||
|
|
||||||
|
def download_news_mp3(url_mp3, filename):
|
||||||
|
print("Downloading : " + filename +" -- " + url_mp3)
|
||||||
|
try:
|
||||||
|
urlrequest.urlretrieve(url_mp3, filename)
|
||||||
|
except:
|
||||||
|
print("Can't download " + filename +" -- " + url_mp3 + " == Cancelling")
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def pretty_filename(filename,extension=''):
|
||||||
|
filename = filename.replace(' ', '_')
|
||||||
|
pretty_filename = filename.replace('/', '_')
|
||||||
|
if extension != '':
|
||||||
|
extension = str('.'+extension)
|
||||||
|
return pretty_filename+extension
|
||||||
|
|
||||||
|
def main():
|
||||||
|
telegram = telegramUtils()
|
||||||
|
url = "https://feeds.audiomeans.fr/feed/44f6a116-20a6-44c4-98c4-b3e1bdd46dce.xml"
|
||||||
|
today_podcast = rss_to_dict(url)
|
||||||
|
print(today_podcast)
|
||||||
|
file= pretty_filename(today_podcast[1],'mp3')
|
||||||
|
download_news_mp3(today_podcast[2],file)
|
||||||
|
telegram.send_document(file,str(today_podcast[0])+" "+str(today_podcast[1]))
|
||||||
|
|
||||||
|
main()
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
# Create your views here.
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class TelegramCommunicationConfig(AppConfig):
|
||||||
|
default_auto_field = 'django.db.models.BigAutoField'
|
||||||
|
name = 'telegram_communication'
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
from django.db import models
|
||||||
|
|
||||||
|
# Create your models here.
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
import os
|
||||||
|
import requests
|
||||||
|
from apps.bitwarden.utils import bitwardenUtils
|
||||||
|
|
||||||
|
|
||||||
|
class telegramUtils():
|
||||||
|
|
||||||
|
token_uid = "a88dbe52-b862-422a-a116-b479009733ab"
|
||||||
|
chat_id_uid = "13e948ab-494a-4b09-bb3a-b47900974cef"
|
||||||
|
|
||||||
|
__bitwarden_access_token = os.environ.get('bitwarden_access_token')
|
||||||
|
__bitwarden_organization_id = os.environ.get('bitwarden_organization_id')
|
||||||
|
|
||||||
|
bw = bitwardenUtils(__bitwarden_access_token,__bitwarden_organization_id)
|
||||||
|
|
||||||
|
__TOKEN = bw.read_value_secret(token_uid)
|
||||||
|
__CHAT_ID = bw.read_value_secret(chat_id_uid)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def get_chat_id(self):
|
||||||
|
# Source - https://stackoverflow.com/a/75118239
|
||||||
|
# Posted by Yasantha Biyuranga, modified by community. See post 'Timeline' for change history
|
||||||
|
# Retrieved 2026-06-30, License - CC BY-SA 4.0
|
||||||
|
|
||||||
|
url = f"https://api.telegram.org/bot{self.__TOKEN}/getUpdates"
|
||||||
|
print(requests.get(url).json())
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def send_message(self,message):
|
||||||
|
# Source - https://stackoverflow.com/a/75118239
|
||||||
|
# Posted by Yasantha Biyuranga, modified by community. See post 'Timeline' for change history
|
||||||
|
# Retrieved 2026-06-30, License - CC BY-SA 4.0
|
||||||
|
|
||||||
|
url = f"https://api.telegram.org/bot{self.__TOKEN}/sendMessage?chat_id={self.__CHAT_ID}&text={message}"
|
||||||
|
#print(requests.get(url).json()) # this sends the message
|
||||||
|
|
||||||
|
result = requests.get(url).json() # this sends the message
|
||||||
|
send_result = result['ok']
|
||||||
|
return send_result
|
||||||
|
|
||||||
|
def send_document(self,file,message=''):
|
||||||
|
url = 'https://api.telegram.org/bot{}/sendDocument'.format(self.__TOKEN)
|
||||||
|
data = {'chat_id': self.__CHAT_ID ,'caption': message}
|
||||||
|
document = open(file, 'rb')
|
||||||
|
files = {'document': document}
|
||||||
|
response = requests.post(url, data=data, files=files)
|
||||||
|
result = response.json()
|
||||||
|
return result['ok'],result['result']['message_id'],result
|
||||||
|
|
||||||
|
#example send_document('apps/Le_journal_10h00_du_30_06_2026.mp3')
|
||||||
|
|
||||||
|
def delete_message(self,message_id_list):
|
||||||
|
send_result = []
|
||||||
|
for message_id in message_id_list:
|
||||||
|
url = f"https://api.telegram.org/bot{self.__TOKEN}/deleteMessage?chat_id={self.__CHAT_ID}&message_id={message_id}"
|
||||||
|
|
||||||
|
result = requests.get(url).json()
|
||||||
|
send_result.append(["Message id: "+str(message_id),result['ok']])
|
||||||
|
return send_result,result
|
||||||
|
|
||||||
|
|
||||||
|
telegram = telegramUtils()
|
||||||
|
#send_message("Hello")
|
||||||
|
print(telegram.send_document('apps/Le_journal_10h00_du_30_06_2026.txt',"News du jour 2"))
|
||||||
|
#print(telegram.send_document('apps/Le_journal_10h00_du_30_06_2026.txt'))
|
||||||
|
|
||||||
|
#just delete everything , for testing
|
||||||
|
list_message_to_delete = []
|
||||||
|
for i in range(26):
|
||||||
|
list_message_to_delete.append(i)
|
||||||
|
|
||||||
|
print(telegram.delete_message(list_message_to_delete))
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
# Create your views here.
|
||||||
Reference in New Issue
Block a user