import random
import re
import time

from includes.wordpress import wordpress as wp
from includes import helpers
from urllib.parse import urlparse, urlunparse

posts = helpers.read_json_file('posts')

EP_PATTERNS = [
    re.compile(r'(?i)S\d{1,2}\s*[.\-_]?\s*E0*([1-9]\d{0,2})'),
    re.compile(r'(?i)\bE0*([1-9]\d{0,2})\b'),
    re.compile(r'(?i)[\-_\.]0*([1-9]\d{0,2})[\-_\.]')
]
def extract_episode(text):
    if not text:
        return None
    for rx in EP_PATTERNS:
        m = rx.search(text)
        if m:
            ep = int(m.group(1))
            if ep > 0:
                return ep
    return None

for k, a in posts.items():

    if a.get('type') != 'series':
        continue

    if not isinstance(a.get('download_links'), dict):
        a['download_links'] = {'1': a.get('download_links')}
    for _k, _a in a['download_links'].items():

        if not isinstance(_a, list):
            continue

        for link in _a:

            if 'episode' in link:
                continue

            episode = extract_episode(link.get('link'))

            if episode:
                link['episode'] = episode

merged_posts = helpers.merge_post_data_by_imdb(posts)
for post_info in merged_posts:

    if not post_info['download_links']:
        continue

    if post_info['trailer']:
        parsed = urlparse(post_info['trailer'])
        clean_url = urlunparse((parsed.scheme, parsed.netloc, parsed.path, '', '', ''))
        post_info['trailer'] = clean_url

    res = wp.update_create_post(post_info)

    print(res)

    time.sleep(random.uniform(0.5, 2.5))

print('process finished.')
