30 lines
No EOL
592 B
Python
30 lines
No EOL
592 B
Python
from dataclasses import dataclass
|
|
from io import TextIOWrapper
|
|
from os import sep
|
|
|
|
@dataclass
|
|
class Article:
|
|
id: str
|
|
title: str
|
|
summary: str
|
|
content: str
|
|
|
|
def read_article_file(file: TextIOWrapper) -> Article:
|
|
id = file.name.split(sep)[-1].split('.')[0]
|
|
title = file.readline().strip()
|
|
summary = file.readline().strip()
|
|
content = file.read().strip()
|
|
|
|
return Article(id, title, summary, content)
|
|
|
|
@dataclass
|
|
class Site:
|
|
name: str
|
|
url: str
|
|
|
|
def site_from_json(json: dict) -> Site:
|
|
return Site(
|
|
json['name'],
|
|
json['url']
|
|
)
|
|
|