Skip to main content

SRT(Super Rapid Train) wrapper for python

Project description

SRT

CircleCI

SRT(Super Rapid Train) application python wrapper

This project was inspired from korail2 of carpedm20.

Requirements

  • Python >= 3.2

Installation

pip install SRTrain

Usage

1. Login

>>> from SRT import SRT

>>> srt = SRT("1234567890", YOUR_PASSWORD) # with membership number
>>> srt = SRT("def6488@gmail.com", YOUR_PASSWORD) # with email
>>> srt = SRT("010-1234-xxxx", YOUR_PASSWORD) # with phone number

use verbose option to see some debugging messages

srt = SRT("010-1234-xxxx", YOUR_PASSWORD, verbose=True)

2. Searching trains

use search_train method.

  • dep : A departure station in Korean ex) '수서'
  • arr : A arrival station in Korean ex) '부산'
  • date : (optional) A departure date in yyyyMMdd format
  • time : (optional) A departure time in hhmmss format
  • available_only: (optional) (default: True) return trains with available seats only
>>> dep = '수서'
>>> arr = '부산'
>>> date = '20180930'
>>> time = '144000'
>>> trains = srt.search_train(dep, arr, date, time)
>>> trains
# [[SRT] 09월 30일, 수서~부산(15:00~17:34) 특실 예약가능, 일반실 예약가능,
# [SRT] 09월 30일, 수서~부산(15:30~18:06) 특실 예약가능, 일반실 예약가능,
# [SRT] 09월 30일, 수서~부산(16:00~18:24) 특실 매진, 일반실 예약가능,
# [SRT] 09월 30일, 수서~부산(16:25~18:45) 특실 예약가능, 일반실 예약가능, ...]

3. Making a reservation

use reserve method.

  • train: SRTTrain object returned by search_train()
  • passengers (optional, default is one Adult)
>>> trains = srt.search_train(dep, arr, date, time)
>>> reservation = srt.reserve(trains[0])
>>> reservation
# [SRT] 09월 30일, 수서~부산(15:30~18:06) 130700원(3석), 구입기한 09월 20일 23:38

>>> from passengers import Adult, Child
>>> srt.reserve(trains[1], passengers=[Adult(), Adult(), Child()])

Passenger class

Highly inspired by @dotaitch's Passenger class

  • Adult
  • Child
  • Senior
  • Disability1To3
  • Disability4To6

4. Getting reserved tickets

Use get_reservations() method.

>>> reservations = srt.get_reservations()
>>> reservations
# [[SRT] 09월 30일, 수서~부산(15:30~18:06) 130700원(3석), 구입기한 09월 19일 19:11]

>>> reservations[0].tickets
# [18호차 9C (일반실) 어른/청소년 [52300원(600원 할인)],
# 18호차 10C (일반실) 어른/청소년 [52300원(600원 할인)],
# 18호차 10D (일반실) 장애 4~6급 [26100원(26800원 할인)]]

5. Canceling reservation

Use cancel method.

  • reservation: SRTreservation object returned by reserve() or returned by get_reservations()
>>> reservation = srt.reserve(train)
>>> srt.cancel(reservation)

>>> reservations = srt.get_reservations()
>>> srt.cancel(reservations[0])

Changelog

  • 0.1.3 (2019/02/15): search_train() 에서 매진되지 않은 좌석만 리턴하는 옵션을 디폴트로 추가
  • 0.1.5 (2019/02/15): 매진 확인 오류 수정

TODO

  • Add tests for CI

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

SRTrain-0.1.5.tar.gz (12.3 kB view details)

Uploaded Source

File details

Details for the file SRTrain-0.1.5.tar.gz.

File metadata

  • Download URL: SRTrain-0.1.5.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.13.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.2

File hashes

Hashes for SRTrain-0.1.5.tar.gz
Algorithm Hash digest
SHA256 1fd9e7c32f544b75f69588ff20da4ab24c09624f5fffccdf246b8e9697b41b03
MD5 f0be0aa8ff1655af737d106742326853
BLAKE2b-256 54b3d8df3b5e8ba146e880920aec6e8f8845db7f90e869bc6e97a82bed56c5a9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page