isdn-python/README.md

119 lines
3.1 KiB
Markdown
Raw Normal View History

2023-03-26 04:57:18 +09:00
# ISDN-Python
2023-04-03 03:04:01 +09:00
[![PyPI version](https://badge.fury.io/py/isdn.svg)](https://badge.fury.io/py/isdn)
[![Test](https://github.com/Babibubebon/isdn-python/actions/workflows/test.yml/badge.svg)](https://github.com/Babibubebon/isdn-python/actions/workflows/test.yml)
2023-03-26 04:57:18 +09:00
[ISDN (International Standard Dojin Numbering)](https://isdn.jp/) のPythonライブラリとCLIツール
## Install
```
$ pip install isdn
```
## Example
2023-04-03 03:04:01 +09:00
ISDNを[番号の仕様](https://isdn.jp/about.html)に従って検証
2023-03-26 04:57:18 +09:00
```python
>>> from isdn import ISDN
>>> isdn = ISDN("2784702901978")
>>> isdn.validate()
True
>>> ISDN.calc_check_digit("2784702901978")
'8'
```
2023-04-03 03:04:01 +09:00
isdn.jp が提供している書誌情報を取得 ([Web からの情報取得](https://isdn.jp/about.html))
2023-03-26 04:57:18 +09:00
```python
>>> from isdn import ISDNClient
>>> client = ISDNClient()
>>> record = client.get("2784702901978")
>>> record.isdn
ISDN(code='2784702901978', prefix='278', group='4', registrant='702901', publication='97', check_digit='8')
>>> record.product_name
'みほん同人誌'
2023-04-08 03:32:34 +09:00
>>> record
ISDNRecord(
isdn=ISDN(
code='2784702901978',
prefix='278',
group='4',
registrant='702901',
publication='97',
check_digit='8'
),
region='日本',
class_='オリジナル',
type='同人誌',
rating_gender='区別なし',
rating_age='一般',
product_name='みほん同人誌',
product_yomi='みほんどうじんし',
publisher_code='14142139',
publisher_name='見本サークル',
publisher_yomi='みほんさーくる',
issue_date=datetime.date(2008, 3, 12),
genre_code='106',
genre_name='評論・情報',
genre_user=None,
c_code='C3055',
author='専門',
shape='単行本',
contents='電子通信',
price=100,
price_unit='JPY',
barcode2='2923055001007',
product_comment=None,
product_style=None,
product_size=None,
product_capacity=None,
product_capacity_unit=None,
sample_image_uri=HttpUrl('https://isdn.jp/images/thumbs/2784702901978.png', ),
useroptions=[
UserOption(property='執筆者', value='みほん執筆者1'),
UserOption(property='執筆者', value='みほん執筆者2'),
UserOption(property='執筆者', value='みほん執筆者3'),
UserOption(property='執筆者', value='みほん執筆者4'),
UserOption(property='執筆者', value='みほん執筆者5'),
UserOption(property='執筆者', value='みほん執筆者6')
],
external_links=[
ExternalLink(title='国際標準同人誌番号', uri=HttpUrl('http://isdn.jp/', )),
ExternalLink(
title='mixiコミュニティ',
uri=HttpUrl('http://mixi.jp/view_community.pl?id=3188828', )
)
]
)
2023-03-26 04:57:18 +09:00
```
## CLI
指定したISDNの形式を検証
```
$ isdn validate 2784702901978
```
指定したISDNの書誌情報を isdn.jp から取得
```
$ isdn get 2784702901978
$ isdn get 2784702901978 --format json
```
ISDNの一覧を isdn.jp から取得
```
$ isdn list
```
すべての書誌情報を isdn.jp から取得してファイルに保存
```
$ isdn bulk-download /path/to/download
2023-04-08 03:32:34 +09:00
$ isdn bulk-download /path/to/download --write-image
2023-03-26 04:57:18 +09:00
```