import feedparser
from random import choice
import tweepy

feed_url = 'https://www.mathweb.fr/euclide/rss'
blog_feed = feedparser.parse(feed_url)

"""
print( blog_feed.feed.title )
print( blog_feed.feed.link )

for entry in blog_feed.entries:
    print(f"{entry.title} --> {entry.tags}")
"""
CLIENT_ID = "Wl80Z0FybHc3aVRRWi1kVHZqbTA6MTpjaQ"
CLIENT_SECRET = "s5pKK-0Xn1XMejhABOVz8RJp-cE2drIfa3mW61EQ93a0Sx0kAP"
API_KEY = "lYurvUnrKcxGLcaPbgemkYScV"
API_SECRET = "U438mt4uaRxqSbYq3xlRcG6hsvwjW2hr50f1yGH6td70lV4YfN"
BEARER_TOKEN = "AAAAAAAAAAAAAAAAAAAAAGbDdgEAAAAACAE23r4rvHmw5oj8rkNrrFwocio%3DLl1T1MhqaR9d6sb4NYELQ1uAVSvZH9LQX2011KtAFF6zuDBEnh"
ACCESS_TOKEN = "1532617142205665286-Hu6AOrJ40MJ7gtfytNMyDku7a1QuM1"
ACCESS_TOKEN_SECRET = "JzcEDULMUfJO5JiVK9QO3PdnkPrn6hWr4RHWePyEW5veh"


client = tweepy.Client(bearer_token=BEARER_TOKEN,
                       consumer_key=API_KEY,
                       consumer_secret=API_SECRET,
                       access_token=ACCESS_TOKEN,
                       access_token_secret=ACCESS_TOKEN_SECRET)


# recherche de 'mathweb.fr'

"""
tweets = client.search_recent_tweets('mathweb.fr',
                                     tweet_fields = ["created_at", "text", "source"],
                                     user_fields = ["name", "username", "location", "verified", "description"],
                                     expansions='author_id')

tweet_info_ls = []
for tweet, user in zip(tweets.data, tweets.includes['users']):
    tweet_info = {
        'created_at': tweet.created_at,
        'text': tweet.text,
        'source': tweet.source,
        'name': user.name,
        'username': user.username,
        'location': user.location,
        'verified': user.verified,
        'description': user.description
    }
    tweet_info_ls.append(tweet_info)
    
for i in tweet_info_ls:
    if i['username'] != 'Mathwebfr':
        for key,value in i.items():
            print('{:>15} : {}'.format(key,value))
        print('-'*100)
"""
rep = 'n'

while rep == 'n':
    entry = choice(blog_feed.entries)
    tweet = entry.title.lower()
    tags = entry.tags # liste de dictionnaires
    # exemple : [{'term': 'Informatique', 'scheme': None, 'label': None}, {'term': 'Mathématiques', 'scheme': None, 'label': None}, {'term': 'Python', 'scheme': None, 'label': None}, {'term': 'chiffrement', 'scheme': None, 'label': None}, {'term': 'chiffrement affine', 'scheme': None, 'label': None}]

    L = [ 'maths' , 'mathématiques' , 'latex' , 'python' ]
    count = 0
    for i in L:
        if i in tweet:
            tweet = tweet.replace(i,'#'+i)
            count += 1
            
    if count == 0:
        tweet += ' #maths'
        
    if len(tags) != 0:
        for i in tags:
            if i['term'].lower() not in L and i['term'].lower() not in tweet:
                tweet += ' #'+i['term'].replace(' ','_').lower()
            elif i['term'].lower() in tweet:
                tweet = tweet.replace( i['term'] , '#'+i['term'] )
            
    tweet = tweet[0].upper() + tweet[1:] + '\n' + entry.link
    tweet = tweet.replace('##','#')
    tweet = tweet.replace('\(','').replace('\)','').replace('\#','#')
    print(tweet)
    rep = input('Valider ? (o/n) ')
    if rep == 'o':
        client.create_tweet(text = tweet)
