import json
import os
from pathlib import Path
from urllib.request import urlopen, Request

inp_project = os.environ.get('PROJECT').strip()
inp_author = os.environ.get('AUTHOR').strip()
file_name = Path(f'_repo/{inp_project}.md')
crowdin_projet_id = 452300

print(f'Collecting {inp_project} with {inp_author}...')

def get_data(url, key=None, default=0, auth=None):
  """Fetches data from remote endpoint"""
  httprequest = Request(url, headers={"Accept": "application/json"})

  if auth:
    httprequest.add_header("Authorization", f"Bearer {auth}")

  with urlopen(httprequest) as response:
    data = response.read().decode()
    data = json.loads(data)

  if key:
    data = data.get(key, default)

  return data

pypi_data = get_data(f'https://pypi.org/pypi/{inp_project}/json')

name = pypi_data['info']['name']
tagline = pypi_data['info']['summary']
author = inp_author or pypi_data['info']['author_email']
license = pypi_data['info']['license']
try:
  version = pypi_data['info']['version']
  stable = int(version.split('.')[0])>1
except:
  stable = False
bugtracker = pypi_data['info']['bugtrack_url'] or pypi_data['info']['project_urls'].get('Bug Tracker') or ''
homepage = pypi_data['info']['home_page'] or pypi_data['info']['project_urls'].get('Homepage')
keywords = pypi_data['info']['keywords']
readme = pypi_data['info']['description']

# Write data
file_name.write_text(
f"""---
name: {name}
author: {author}
license: {license}
open_source: true
stable: {stable}
maintained: true
pypi: true
package_name: {name}
github: {homepage}
gitlab:
source:
issue_tracker:{bugtracker}
website:
categories:
tags: {keywords}
---
{tagline}

{readme}
"""
)
