2
0
mirror of https://github.com/inventree/inventree-website.git synced 2025-04-27 21:16:45 +00:00
inventree-website/.github/collect_plugin.py
Matthias Mair 311c0904fa
Fix action ref (#115)
* add debug line

* add token

* remove old token ref

* move permission section

* clean inputs
2023-01-29 21:18:40 +01:00

69 lines
1.6 KiB
Python

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}
"""
)