diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..3069917 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,97 @@ +name: ci +on: + push: ~ + pull_request: ~ +jobs: + build: + if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + python-version: [ 2.7, 3.5, 3.6, 3.7, 3.8 ] + + steps: + - name: Setup python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Checkout + uses: actions/checkout@v2 + + - name: Git User config + run: | + git config --global user.email "action@github.com" + git config --global user.name "github-actions" + + - name: Install Dependencies + run: | + pip install pip --upgrade + pip install -e .[dev,test] --upgrade + pip install pytest --upgrade + pip install coveralls + pytest --version + + - run: pylint guessit + if: matrix.python-version != '3.9' + + - run: coverage run --source=guessit setup.py test + + - run: python setup.py build + + - name: Coveralls + run: coveralls + env: + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} + + release: + if: ${{ github.ref == 'refs/heads/master' && github.event_name == 'push' }} + needs: build + + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + python-version: [ 3.8 ] + + steps: + - name: Setup python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Git User config + run: | + git config --global user.email "action@github.com" + git config --global user.name "github-actions" + + - name: Install Dependencies + run: pip install -r requirements-dev.txt + + - name: Install python-semantic-release + run: pip install python-semantic-release + + - name: Publish release + run: semantic-release -v DEBUG publish + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} + + - name: Merge master to develop + # uses: robotology/gh-action-nightly-merge@v1.3.1 # Wait PR merge https://github.com/robotology/gh-action-nightly-merge/pull/5 + uses: Toilal/gh-action-nightly-merge@master + with: + stable_branch: 'master' + development_branch: 'develop' + allow_ff: true + user_name: github-actions + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml new file mode 100644 index 0000000..710c8c6 --- /dev/null +++ b/.github/workflows/mkdocs.yml @@ -0,0 +1,15 @@ +name: mkdocs +on: + push: + branches: + - master +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: 3.x + - run: pip install mkdocs-material + - run: mkdocs gh-deploy --force diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index dd392e7..0000000 --- a/.travis.yml +++ /dev/null @@ -1,27 +0,0 @@ -language: python -python: - - 2.7 - - 3.5 - - 3.6 - - pypy -# - pypy3 -matrix: - include: - - python: 3.7 - dist: xenial - sudo: true - - python: 3.8 - dist: xenial - sudo: true -install: - - pip install pip --upgrade - - pip install -e .[dev,test] --upgrade - - pip install pytest --upgrade - - pip install coveralls - - pytest --version -script: - - if [[ -z $PYLINT_DISABLED ]]; then pylint guessit; fi - - coverage run --source=guessit setup.py test - - python setup.py build -after_success: - - coveralls diff --git a/AUTHORS.md b/AUTHORS.md new file mode 100644 index 0000000..d39f883 --- /dev/null +++ b/AUTHORS.md @@ -0,0 +1,17 @@ +Copyright (c) 2011 - 2020, The GuessIt contributors. + +GuessIt is an opensource project written and maintained by passionate +people. + +If you feel your name should belong to this list, please [open an +issue](https://github.com/guessit/guessit/issues) + +Author and contributors of current guessit version (`2.x`/`3.x`): + +- Rémi Alvergnat <> +- Rato <> + +Author and contributors of initial guessit version (`0.x`/`1.x`): + +- Nicolas Wack <> +- Ricard Marxer <> diff --git a/AUTHORS.rst b/AUTHORS.rst deleted file mode 100644 index beb9718..0000000 --- a/AUTHORS.rst +++ /dev/null @@ -1,15 +0,0 @@ -Copyright (c) 2011 - 2018, The GuessIt contributors. - -GuessIt is an opensource project written and maintained by passionate people. - -If you feel your name should belong to this list, please `open an issue `_ - -Author and contributors of current guessit version (``2.x``/``3.x``): - -- Rémi Alvergnat -- Rato - -Author and contributors of initial guessit version (``0.x``/``1.x``): - -- Nicolas Wack -- Ricard Marxer \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..67526b4 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,366 @@ +Changelog +======= + + + +## 3.1.1 (2020-05-03) + +- Drop python 3.4 support +- Use SafeLoader with yaml.load() + +## 3.1.0 (2019-09-02) + +- Add python 3.8 support +- Use rebulk 2.\* +- Remove v from subtitle\_language prefix in default configuration +- Add Variable Frame Rate value to other property (VFR tag) +- Use episode words defined in configuration in a rebulk rule +- Avoid trigger of useless rules consequences +- Fix possible crash in weak episode removal +- Fix issue caused by streaming\_service property conflicts +- Fix source validation when more than one pattern match +- Fix issue with some titles on multiple fileparts +- Fix issue related to website exclusion inside title + +## 3.0.4 (2019-06-04) + +- screen\_size property 540p was added. +- Fix audio\_channel detection for 6.0 +- Fix common words being detected as language +- streaming\_service is now configurable in advanced options +- Add DC Universe to streaming\_service +- Improve detection when release name in between brackets +- Improve language detection +- Fix wrong 3D detection +- Fix to keep separators for single characters. E.g.: S.W.A.T. +- Fix Show Name/Season SS/Ep. EE - Title +- Added This is Us to default expected titles +- Added suggested\_expected to the api to support apps that uses guessit as a library +- Added Extras detection as other property +- Add more streaming sites + +## 3.0.3 (2018-10-23) + +- Add MP2 audio\_codec value. +- Proper and Fix have been separated in two distinct other values. +- Add 1e18 season/episode pattern. +- Fix false release\_group matches with --expected-title option. +- Fix parent folder ending with a digit detected as title +- Fix wrong season/year with --type episode option. Serie(s) keyword has been removed from default configuration. +- Fix missing property when episode\_details pattern appears in title. + +## 3.0.2 (2018-10-18) + +- Ensure consistent behavior between CLI and Python module. It's now possible to override advanced\_config at runtime through options dict. Rebulk rules are lazily rebuilt when advanced\_config is changed since previous call. +- Refactored command line options and loading behavior related to configuration files (see -c CONFIG, --config CONFIG, --no-user-config, --no-default-config) + +## 3.0.1 (2018-10-17) + +- Removed Extras and Bonus values from episode\_details property as those tags may also appear in movies +- Add Scalable Video Coding, Advanced Video Codec High Definition and High Efficiency Video Coding values to video\_profile +- Add support for Python 3.7 +- Add mk3d value to container +- Better title cleanup containing acronyms (like Marvel's Agents of S.H.I.E.L.D) +- Fix issue with ES audio\_profile breaking titles +- Fix crash for files ending with Rip + +## 3.0.0 (2018-05-22) + +- Renamed format property to source. +- source property Cam is now Camera or HD Camera +- source property Telesync is now Telesync or HD Telesync +- source property PPV is now Pay-per-view +- source property DVB is now Digital TV +- source property VOD is now Video on Demand +- source property WEBRip is now Web with additional property \`other\`: Rip +- source property WEB-DL is now Web +- source property AHDTV is now Analog HDTV +- source property UHDTV is now Ultra HDTV +- source property HDTC is now HD Telecine +- screen\_size property 360i was added. +- screen\_size property 480i was added. +- screen\_size property 576i was added. +- screen\_size property 900i was added. +- screen\_size property 1440p was added. +- screen\_size property 4K is now 2160p +- screen\_size property 4320p was added. +- video\_codec property h264 is now H.264 +- video\_codec property h265 is now H.265 +- video\_codec property Mpeg2 is now MPEG-2 +- video\_codec property Real is now RealVideo +- video\_codec property XviD is now Xvid +- video\_profile property BP is now Baseline. +- video\_profile property HP is now High. +- video\_profile property XP is now Extended. +- video\_profile property MP is now Main. +- video\_profile property Hi422P is now High 4:2:2. +- video\_profile property Hi444PP is now High 4:4:4 Predictive. +- video\_profile property High 10 was added. +- video\_profile property 8bit was removed. 8bit is detected as \`color\_depth\`: 8-bit +- video\_profile property 10bit was removed. 10bit is detected as \`color\_depth\`: 10-bit +- audio\_codec property DTS-HD was added. +- audio\_codec property AC3 is now Dolby Digital +- audio\_codec property EAC3 is now Dolby Digital Plus +- audio\_codec property TrueHD is now Dolby TrueHD +- audio\_codec property DolbyAtmos is now Dolby Atmos. +- audio\_profile property HE is now High Efficiency. +- audio\_profile property LC is now Low Complexity. +- audio\_profile property HQ is now High Quality. +- audio\_profile property HDMA is now Master Audio. +- edition property Collector Edition is now Collector +- edition property Special Edition is now Special +- edition property Criterion Edition is now Criterion +- edition property Deluxe Edition is now Deluxe +- edition property Limited Edition is now Limited +- edition property Theatrical Edition is now Theatrical +- edition property Director's Definitive Cut was added. +- episode\_details property Oav and Ova were removed. They are now other: Original Animated Video +- episode\_details property Omake is now Extras +- episode\_details property Final was added. +- other property Rip was added. +- other property DDC was removed. DDC is now \`edition\`: Director's Definitive Cut +- other property CC was removed. CC is now \`edition\`: Criterion +- other property FINAL was removed. FINAL is now \`episode\_details\`: Final +- other property Original Animated Video was added. +- other property OV is now Original Video +- other property AudioFix is now Audio Fixed +- other property SyncFix is now Sync Fixed +- other property DualAudio is now Dual Audio +- other property Fansub is now Fan Subtitled +- other property Fastsub is now Fast Subtitled +- other property FullHD is now Full HD +- other property UltraHD is now Ultra HD +- other property mHD and HDLight are now Micro HD +- other property HQ is now High Quality +- other property HR is now High Resolution +- other property LD is now Line Dubbed +- other property MD is now Mic Dubbed +- other property Low Definition was added. +- other property LiNE is now Line Audio +- other property R5 is now Region 5 +- other property Region C was added. +- other property ReEncoded is now Reencoded +- other property WideScreen is now Widescreen +- Added Ultra HD Blu-ray as new source possible value. +- Added Standard Dynamic Range as new other possible value. +- Added HDR10 as new other possible value. +- Added Dolby Vision as new other possible value. +- Added BT.2020 as new other possible value. +- Added 12-bit as new color\_depth possible value. +- Added IMAX as new edition possible value. +- Added Upscaled as new other possible value. +- Added High Frame Rate as new other possible value. +- Added Ultimate as new edition possible value. +- Added Fan as new edition possible value. +- Added High Resolution Audio as new audio\_profile possible value. +- Added Extended Surround as new audio\_profile possible value. +- Added EX as new audio\_profile possible value +- Added Opus as new audio\_codec possible value +- Added aspect\_ratio as new property. Also used to validate if a screen\_size is a standard resolution. +- Fixed unwanted language and country detection for exotic languages. +- Added default and configurable list of allowed languages and countries +- Added VC-1 as new video\_codec possible value +- Enhanced dash-separated release\_group detection. +- Changed size output to return guessit.Quantity object. +- Changed size output to return guessit.Size object. +- Added audio\_video\_rate as new possible property. +- Added video\_video\_rate as new possible property. +- Added frame\_rate as new possible property. +- Added disc as a new possible property. +- Added H.263 as new video\_codec possible value. +- Added VP7 as new video\_codec possible value. +- Added VP8 as new video\_codec possible value. +- Added VP9 as new video\_codec possible value. +- Added Vorbis as new audio\_codec possible value. +- Added PCM as new audio\_codec possible value. +- Added LPCM as new audio\_codec possible value. +- Added Digital Master as new source possible value. +- Added several new values for streaming\_service. +- Added new options --includes and --excludes. +- Added Sample as new other possible value. +- Added Obfuscated as new other possible value. +- Added Proof as new other possible value. +- Added Repost as new other possible value. +- Added advanced guessit configuration to config files. +- Add support for pathlib.Path objects on guessit API input. + +## 2.1.4 (2017-06-01) + +- Fix broken match function when using rebulk\>=0.9.0. + +## 2.1.3 (2017-05-31) + +- Add nzb as new container possible value +- Add EAC3 as new audio\_codec possible value +- Add FullHD as new other possible value +- Added python 3.6 support +- Dropped python 2.6 support +- Make container values consistent and always lowercase +- Fix --type movie being ignored for movies that starts with numbers +- Fix invalid language detection due the common words audio, true and unknown +- Fix episode type detection when series name contains year followed by SEE pattern + +## 2.1.2 (2017-04-03) + +- Many fixes, additions and improvements (thanks to @ratoaq2). + +## 2.1.1 (2016-12-04) + +- Add \~ to episode/season separators. +- Add AHDTV, HDTC, SATRip as new format possible values. +- Add streaming\_service property. +- Add DDP pattern as audio\_codec=\`DolbyDigital\`. +- Add LDTV as possible tag for other=\`LD\`. +- Add StripSeparators Post Processor to strip separators from all matches. +- Fix invalid guess 1 x 2 with --type episode. +- Fix part property. +- Fix cd\_count issue with x264-CD. +- Fix HDD group detected as DolbyDigital. +- Fix invalid comparator in audio\_codec conflict solver. +- Fix validation of film property. +- Fix date followed by screen\_size invalid guess. +- Fix episode not detected when smaller filepart repeats the season and uses SSEE pattern. +- Enhance season/episode conflict solver to keep most specific value. +- Enhance video\_profile detection. +- Enhance episode/season range and sequence guessing. +- Enhance performance with rebulk upgrade to 0.8.2. +- Enhance season/episode. +- Enhance other=\`Complete\` guessing. +- Enhance release\_group guessing. +- Enhance command line options parsing related to unicode. +- Ensure roman numbers are surrounded with separators to be guessed as numbers. + +## 2.1.0 (2016-09-08) + +- Drop support for regex native module. +- Remove dependency constraint on python-dateutil. +- Enhance langage/country guessing in edge cases. +- Enhance rule to guess release\_group in more file templates. +- Fix edge cases for subtitle language detection. +- Fix invalid conflict solving in season/episode occuring between SssEee and ssXee pattern. +- Fix issue when running guessit in non-interactive shell with python 2 +- Guess Dolby keyword as DolbyDigital in audio\_codec. +- Avoid title to be guessed as website (Dark.Net) +- Avoid season/episode to be guessed when pattern is included inside words. +- Enhance screen\_size to detect 720pHD and 1080pHD +- Add support for format and video\_codec when no separators between themselves. (HDTVx264, PDTVx264, ...) +- Add rebulk version in --version option. +- Upgrade rebulk to 0.7.3. + +## 2.0.5 (2016-04-10) + +- Fix inconsistent properties returned by guessit -p. +- Add support for titles containing dots. +- Lock python-dateutil dependency to \<2.5.2. + +## 2.0.4 (2016-02-03) + +- Add an Exception Report when an unexpected exception occurs. + +## 2.0.3 (2016-01-30) + +- Something goes wrong with 2.0.2 release ... + +## 2.0.2 (2016-01-30) + +- Fix possible issue with unicode characters encoding/decoding. +- Pypy is now supported. + +## 2.0.1 (2016-01-28) + +- Add support for any type of string with python 2 and python 3 (binary, str, unicode). + +## 2.0.0 (2016-01-27) + +- Final release. + +## 2.0rc8 (2016-01-26) + +- Remove regex native module from required dependencies. It will now be used only if present. + +## 2.0rc7 (2016-01-18) + +- Fix packaging issues on Python 2.7. + +## 2.0rc6 (2016-01-18) + +- Fix packaging issues. + +## 2.0rc5 (2016-01-18) + +- Guessit is now available as a docker container on Docker Hub (). +- country 2-letter code is not added to title value anymore. +- All container values are now capitalized. +- alternativeTitle has been renamed to alternative\_title and added to the docs. +- mimetype property is now in the docs. +- Add more excluded words for language property. +- Add more possible values for other property. +- Fix an issue occuring with title values starting with Scr. +- film property is now guessed only if less than 100 to avoid possible conflicts with crc32. + +## 2.0rc4 (2015-12-03) + +- Add docs. +- Add exotic screen\_size patterns support like 720hd and 720p50. +- Rename audio\_codec value true-HD to trueHD. + +## 2.0rc3 (2015-11-29) + +- Add \_\_version\_\_ to main module. + +## 2.0rc2 (2015-11-28) + +- Single digit episodes are now guessed for --type episode instead of --episode-prefer-number. +- Fix separators that could cause some titles to be splited with & and ;. +- Avoid possible NoneType error. + +## 2.0rc1 (2015-11-27) + +- Fallback to default title guessing when expected-title is not found. + +## 2.0b4 (2015-11-24) + +- Add expected-group option. +- Add validation rule for single digit episode to avoid false positives. +- Add verbose option. +- Fix expected-title option. +- Better unicode support in expected-group/expected-title option. + +## 2.0b3 (2015-11-15) + +- Add support for part with no space before number. +- Avoid uuid and crc32 collision with season/episode properties. +- Add better space support for season/episode properties. +- Ensure date property is found when conflicting with season/episode properties. +- Fix IndexError when input has a closing group character with no opening one before. +- Add --type option. +- Add rebulk implicit option support. + +## 2.0b2 (2015-11-14) + +- Add python 2.6 support. + +## 2.0b1 (2015-11-11) + +- Enhance title guessing. +- Upgrade rebulk to 0.6.1. +- Rename properCount to proper\_count +- Avoid crash when using -p/-V option with --yaml and yaml module is not available. + +## 2.0a4 (2015-11-09) + +- Add -p/-V options to display properties and values that can be guessed. + +## 2.0a3 (2015-11-08) + +- Allow rebulk customization in API module. + +## 2.0a2 (2015-11-07) + +- Raise TypeError instead of AssertionError when non text is given to guessit API. +- Fix packaging issues with previous release blocking installation. + +## 2.0a1 (2015-11-07) + +- Rewrite from scratch using Rebulk. +- Read MIGRATION.rst for migration guidelines. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..674716e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,22 @@ +# Contribute + +GuessIt is under active development, and contributions are more than +welcome! + +1. Check for open issues or open a fresh issue to start a discussion + around a feature idea or a bug. There is a Contributor Friendly tag + for issues that should be ideal for people who are not very familiar + with the codebase yet. +2. Fork [the repository][] on Github to start making your changes to + the **master** branch (or branch off of it). +3. Write a test which shows that the bug was fixed or that the feature + works as expected. +4. Send a pull request and bug the maintainer until it gets merged and + published. :) + +# License + +GuessIt is licensed under the [LGPLv3 license][]. + + [the repository]: https://github.com/guessit-io/guessit + [LGPLv3 license]: http://www.gnu.org/licenses/lgpl.html \ No newline at end of file diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst deleted file mode 100644 index 320223d..0000000 --- a/CONTRIBUTING.rst +++ /dev/null @@ -1,19 +0,0 @@ -Contribute ----------- - -GuessIt is under active development, and contributions are more than welcome! - -#. Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug. - There is a Contributor Friendly tag for issues that should be ideal for people who are not very - familiar with the codebase yet. -#. Fork `the repository`_ on Github to start making your changes to the **master** - branch (or branch off of it). -#. Write a test which shows that the bug was fixed or that the feature works as expected. -#. Send a pull request and bug the maintainer until it gets merged and published. :) - -.. _the repository: https://github.com/guessit-io/guessit - -License -------- - -GuessIt is licensed under the `LGPLv3 license `_. \ No newline at end of file diff --git a/HISTORY.rst b/HISTORY.rst deleted file mode 100644 index d5f9ed1..0000000 --- a/HISTORY.rst +++ /dev/null @@ -1,425 +0,0 @@ -History -======= - -3.1.2 (unreleased) ------------------- - -- Nothing changed yet. - - -3.1.1 (2020-05-03) ------------------- - -- Drop python `3.4` support -- Use SafeLoader with `yaml.load()` - - -3.1.0 (2019-09-02) ------------------- - -- Add python `3.8` support -- Use rebulk `2.*` -- Remove `v` from `subtitle_language` prefix in default configuration -- Add `Variable Frame Rate` value to `other` property (VFR tag) -- Use episode words defined in configuration in a rebulk rule -- Avoid trigger of useless rules consequences -- Fix possible crash in weak episode removal -- Fix issue caused by `streaming_service` property conflicts -- Fix source validation when more than one pattern match -- Fix issue with some titles on multiple fileparts -- Fix issue related to website exclusion inside title - - -3.0.4 (2019-06-04) ------------------- - -- `screen_size` property `540p` was added. -- Fix `audio_channel` detection for `6.0` -- Fix common words being detected as language -- `streaming_service` is now configurable in advanced options -- Add `DC Universe` to `streaming_service` -- Improve detection when release name in between brackets -- Improve language detection -- Fix wrong 3D detection -- Fix to keep separators for single characters. E.g.: S.W.A.T. -- Fix `Show Name/Season SS/Ep. EE - Title` -- Added `This is Us` to default expected titles -- Added `suggested_expected` to the api to support apps that uses guessit as a library -- Added `Extras` detection as `other` property -- Add more streaming sites - -3.0.3 (2018-10-23) ------------------- - -- Add `MP2` `audio_codec` value. -- `Proper` and `Fix` have been separated in two distinct `other` values. -- Add `1e18` `season`/`episode` pattern. -- Fix false `release_group` matches with `--expected-title` option. -- Fix parent folder ending with a digit detected as title -- Fix wrong season/year with `--type episode` option. Serie(s) keyword has been removed from default configuration. -- Fix missing property when `episode_details` pattern appears in title. - -3.0.2 (2018-10-18) ------------------- - -- Ensure consistent behavior between CLI and Python module. It's now possible to override `advanced_config` at runtime - through options dict. Rebulk rules are lazily rebuilt when `advanced_config` is changed since previous call. -- Refactored command line options and loading behavior related to configuration files (see `-c CONFIG`, - `--config CONFIG`, `--no-user-config`, `--no-default-config`) - -3.0.1 (2018-10-17) ------------------- - -- Removed `Extras` and `Bonus` values from `episode_details` property as those tags may also appear in movies -- Add `Scalable Video Coding`, `Advanced Video Codec High Definition` and `High Efficiency Video Coding` values to `video_profile` -- Add support for Python 3.7 -- Add `mk3d` value to `container` -- Better title cleanup containing acronyms (like `Marvel's Agents of S.H.I.E.L.D`) -- Fix issue with ES audio_profile breaking titles -- Fix crash for files ending with `Rip` - - -3.0.0 (2018-05-22) ------------------- - -- Renamed `format` property to `source`. -- `source` property `Cam` is now `Camera` or `HD Camera` -- `source` property `Telesync` is now `Telesync` or `HD Telesync` -- `source` property `PPV` is now `Pay-per-view` -- `source` property `DVB` is now `Digital TV` -- `source` property `VOD` is now `Video on Demand` -- `source` property `WEBRip` is now `Web` with additional property `other`: `Rip` -- `source` property `WEB-DL` is now `Web` -- `source` property `AHDTV` is now `Analog HDTV` -- `source` property `UHDTV` is now `Ultra HDTV` -- `source` property `HDTC` is now `HD Telecine` -- `screen_size` property `360i` was added. -- `screen_size` property `480i` was added. -- `screen_size` property `576i` was added. -- `screen_size` property `900i` was added. -- `screen_size` property `1440p` was added. -- `screen_size` property `4K` is now `2160p` -- `screen_size` property `4320p` was added. -- `video_codec` property `h264` is now `H.264` -- `video_codec` property `h265` is now `H.265` -- `video_codec` property `Mpeg2` is now `MPEG-2` -- `video_codec` property `Real` is now `RealVideo` -- `video_codec` property `XviD` is now `Xvid` -- `video_profile` property `BP` is now `Baseline`. -- `video_profile` property `HP` is now `High`. -- `video_profile` property `XP` is now `Extended`. -- `video_profile` property `MP` is now `Main`. -- `video_profile` property `Hi422P` is now `High 4:2:2`. -- `video_profile` property `Hi444PP` is now `High 4:4:4 Predictive`. -- `video_profile` property `High 10` was added. -- `video_profile` property `8bit` was removed. `8bit` is detected as `color_depth`: `8-bit` -- `video_profile` property `10bit` was removed. `10bit` is detected as `color_depth`: `10-bit` -- `audio_codec` property `DTS-HD` was added. -- `audio_codec` property `AC3` is now `Dolby Digital` -- `audio_codec` property `EAC3` is now `Dolby Digital Plus` -- `audio_codec` property `TrueHD` is now `Dolby TrueHD` -- `audio_codec` property `DolbyAtmos` is now `Dolby Atmos`. -- `audio_profile` property `HE` is now `High Efficiency`. -- `audio_profile` property `LC` is now `Low Complexity`. -- `audio_profile` property `HQ` is now `High Quality`. -- `audio_profile` property `HDMA` is now `Master Audio`. -- `edition` property `Collector Edition` is now `Collector` -- `edition` property `Special Edition` is now `Special` -- `edition` property `Criterion Edition` is now `Criterion` -- `edition` property `Deluxe Edition` is now `Deluxe` -- `edition` property `Limited Edition` is now `Limited` -- `edition` property `Theatrical Edition` is now `Theatrical` -- `edition` property `Director's Definitive Cut` was added. -- `episode_details` property `Oav` and `Ova` were removed. They are now `other: Original Animated Video` -- `episode_details` property `Omake` is now `Extras` -- `episode_details` property `Final` was added. -- `other` property `Rip` was added. -- `other` property `DDC` was removed. `DDC` is now `edition`: `Director's Definitive Cut` -- `other` property `CC` was removed. `CC` is now `edition`: `Criterion` -- `other` property `FINAL` was removed. `FINAL` is now `episode_details`: `Final` -- `other` property `Original Animated Video` was added. -- `other` property `OV` is now `Original Video` -- `other` property `AudioFix` is now `Audio Fixed` -- `other` property `SyncFix` is now `Sync Fixed` -- `other` property `DualAudio` is now `Dual Audio` -- `other` property `Fansub` is now `Fan Subtitled` -- `other` property `Fastsub` is now `Fast Subtitled` -- `other` property `FullHD` is now `Full HD` -- `other` property `UltraHD` is now `Ultra HD` -- `other` property `mHD` and `HDLight` are now `Micro HD` -- `other` property `HQ` is now `High Quality` -- `other` property `HR` is now `High Resolution` -- `other` property `LD` is now `Line Dubbed` -- `other` property `MD` is now `Mic Dubbed` -- `other` property `Low Definition` was added. -- `other` property `LiNE` is now `Line Audio` -- `other` property `R5` is now `Region 5` -- `other` property `Region C` was added. -- `other` property `ReEncoded` is now `Reencoded` -- `other` property `WideScreen` is now `Widescreen` -- Added `Ultra HD Blu-ray` as new `source` possible value. -- Added `Standard Dynamic Range` as new `other` possible value. -- Added `HDR10` as new `other` possible value. -- Added `Dolby Vision` as new `other` possible value. -- Added `BT.2020` as new `other` possible value. -- Added `12-bit` as new `color_depth` possible value. -- Added `IMAX` as new `edition` possible value. -- Added `Upscaled` as new `other` possible value. -- Added `High Frame Rate` as new `other` possible value. -- Added `Ultimate` as new `edition` possible value. -- Added `Fan` as new `edition` possible value. -- Added `High Resolution Audio` as new `audio_profile` possible value. -- Added `Extended Surround` as new `audio_profile` possible value. -- Added `EX` as new `audio_profile` possible value -- Added `Opus` as new `audio_codec` possible value -- Added `aspect_ratio` as new property. Also used to validate if a screen_size is a standard resolution. -- Fixed unwanted language and country detection for exotic languages. -- Added default and configurable list of allowed languages and countries -- Added `VC-1` as new `video_codec` possible value -- Enhanced dash-separated `release_group` detection. -- Changed `size` output to return `guessit.Quantity` object. -- Changed `size` output to return `guessit.Size` object. -- Added `audio_video_rate` as new possible property. -- Added `video_video_rate` as new possible property. -- Added `frame_rate` as new possible property. -- Added `disc` as a new possible property. -- Added `H.263` as new `video_codec` possible value. -- Added `VP7` as new `video_codec` possible value. -- Added `VP8` as new `video_codec` possible value. -- Added `VP9` as new `video_codec` possible value. -- Added `Vorbis` as new `audio_codec` possible value. -- Added `PCM` as new `audio_codec` possible value. -- Added `LPCM` as new `audio_codec` possible value. -- Added `Digital Master` as new `source` possible value. -- Added several new values for `streaming_service`. -- Added new options `--includes` and `--excludes`. -- Added `Sample` as new `other` possible value. -- Added `Obfuscated` as new `other` possible value. -- Added `Proof` as new `other` possible value. -- Added `Repost` as new `other` possible value. -- Added advanced guessit configuration to config files. -- Add support for `pathlib.Path` objects on guessit API input. - -2.1.4 (2017-06-01) ------------------- - -- Fix broken match function when using `rebulk>=0.9.0`. - -2.1.3 (2017-05-31) ------------------- - -- Add `nzb` as new `container` possible value -- Add `EAC3` as new `audio_codec` possible value -- Add `FullHD` as new `other` possible value -- Added python 3.6 support -- Dropped python 2.6 support -- Make `container` values consistent and always lowercase -- Fix `--type movie` being ignored for movies that starts with numbers -- Fix invalid `language` detection due the common words `audio`, `true` and `unknown` -- Fix `episode` type detection when series name contains `year` followed by SEE pattern - -2.1.2 (2017-04-03) ------------------- - -- Many fixes, additions and improvements (thanks to @ratoaq2). - -2.1.1 (2016-12-04) ------------------- - -- Add `~` to episode/season separators. -- Add `AHDTV`, `HDTC`, `SATRip` as new `format` possible values. -- Add `streaming_service` property. -- Add `DDP` pattern as `audio_codec`=`DolbyDigital`. -- Add `LDTV` as possible tag for `other`=`LD`. -- Add `StripSeparators` Post Processor to strip separators from all matches. -- Fix invalid guess `1 x 2` with `--type episode`. -- Fix `part` property. -- Fix `cd_count` issue with `x264-CD`. -- Fix `HDD` group detected as `DolbyDigital`. -- Fix invalid comparator in `audio_codec` conflict solver. -- Fix validation of `film` property. -- Fix `date` followed by `screen_size` invalid guess. -- Fix `episode` not detected when smaller filepart repeats the `season` and uses `SSEE` pattern. -- Enhance `season`/`episode` conflict solver to keep most specific value. -- Enhance `video_profile` detection. -- Enhance `episode`/`season` range and sequence guessing. -- Enhance performance with rebulk upgrade to `0.8.2`. -- Enhance `season`/`episode`. -- Enhance `other`=`Complete` guessing. -- Enhance `release_group` guessing. -- Enhance command line options parsing related to unicode. -- Ensure roman numbers are surrounded with separators to be guessed as numbers. - -2.1.0 (2016-09-08) ------------------- - -- Drop support for `regex` native module. -- Remove dependency constraint on `python-dateutil`. -- Enhance langage/country guessing in edge cases. -- Enhance rule to guess `release_group` in more file templates. -- Fix edge cases for subtitle language detection. -- Fix invalid conflict solving in `season`/`episode` occuring between `SssEee` and `ssXee` pattern. -- Fix issue when running guessit in non-interactive shell with python 2 -- Guess Dolby keyword as DolbyDigital in `audio_codec`. -- Avoid `title` to be guessed as `website` (Dark.Net) -- Avoid `season`/`episode` to be guessed when pattern is included inside words. -- Enhance `screen_size` to detect `720pHD` and `1080pHD` -- Add support for `format` and `video_codec` when no separators between themselves. (HDTVx264, PDTVx264, ...) -- Add rebulk version in `--version` option. -- Upgrade rebulk to `0.7.3`. - -2.0.5 (2016-04-10) ------------------- - -- Fix inconsistent properties returned by guessit -p. -- Add support for titles containing dots. -- Lock python-dateutil dependency to <2.5.2. - -2.0.4 (2016-02-03) ------------------- - -- Add an Exception Report when an unexpected exception occurs. - - -2.0.3 (2016-01-30) ------------------- - -- Something goes wrong with 2.0.2 release ... - - -2.0.2 (2016-01-30) ------------------- - -- Fix possible issue with unicode characters encoding/decoding. -- Pypy is now supported. - - -2.0.1 (2016-01-28) ------------------- - -- Add support for any type of string with python 2 and python 3 (binary, str, unicode). - - -2.0.0 (2016-01-27) ------------------- - -- Final release. - - -2.0rc8 (2016-01-26) -------------------- - -- Remove regex native module from required dependencies. It will now be used only if present. - - -2.0rc7 (2016-01-18) -------------------- - -- Fix packaging issues on Python 2.7. - - -2.0rc6 (2016-01-18) -------------------- - -- Fix packaging issues. - - -2.0rc5 (2016-01-18) -------------------- - -- Guessit is now available as a docker container on Docker Hub (https://hub.docker.com/r/toilal/guessit). -- `country` 2-letter code is not added to `title` value anymore. -- All `container` values are now capitalized. -- `alternativeTitle` has been renamed to `alternative_title` and added to the docs. -- `mimetype` property is now in the docs. -- Add more excluded words for `language` property. -- Add more possible values for `other` property. -- Fix an issue occuring with `title` values starting with `Scr`. -- `film` property is now guessed only if less than `100` to avoid possible conflicts with `crc32`. - - -2.0rc4 (2015-12-03) -------------------- - -- Add docs. -- Add exotic `screen_size` patterns support like `720hd` and `720p50`. -- Rename `audio_codec` value `true-HD` to `trueHD`. - - -2.0rc3 (2015-11-29) -------------------- - -- Add `__version__` to main module. - - -2.0rc2 (2015-11-28) -------------------- - -- Single digit episodes are now guessed for `--type episode` instead of `--episode-prefer-number`. -- Fix separators that could cause some titles to be splited with & and ;. -- Avoid possible `NoneType` error. - - -2.0rc1 (2015-11-27) -------------------- - -- Fallback to default title guessing when `expected-title` is not found. - - -2.0b4 (2015-11-24) ------------------- - -- Add `expected-group` option. -- Add validation rule for single digit `episode` to avoid false positives. -- Add `verbose` option. -- Fix `expected-title` option. -- Better unicode support in `expected-group`/`expected-title` option. - - -2.0b3 (2015-11-15) ------------------- - -- Add support for `part` with no space before number. -- Avoid `uuid` and `crc32` collision with `season`/`episode` properties. -- Add better space support for `season`/`episode` properties. -- Ensure `date` property is found when conflicting with `season`/`episode` properties. -- Fix `IndexError` when input has a closing group character with no opening one before. -- Add `--type` option. -- Add rebulk implicit option support. - -2.0b2 (2015-11-14) ------------------- - -- Add python 2.6 support. - - -2.0b1 (2015-11-11) ------------------- - -- Enhance title guessing. -- Upgrade rebulk to `0.6.1`. -- Rename `properCount` to `proper_count` -- Avoid crash when using `-p`/`-V` option with `--yaml` and `yaml` module is not available. - -2.0a4 (2015-11-09) ------------------- - -- Add `-p`/`-V` options to display properties and values that can be guessed. - - -2.0a3 (2015-11-08) ------------------- - -- Allow rebulk customization in API module. - -2.0a2 (2015-11-07) ------------------- - -- Raise TypeError instead of AssertionError when non text is given to guessit API. -- Fix packaging issues with previous release blocking installation. - -2.0a1 (2015-11-07) ------------------- - -- Rewrite from scratch using Rebulk. -- Read MIGRATION.rst for migration guidelines. diff --git a/MANIFEST.in b/MANIFEST.in index 3e5e947..6261de9 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,7 +1,8 @@ recursive-include guessit *.py *.yml *.txt *.ini *.json *.yaml *.yml recursive-exclude guessit *.pyc include LICENSE -include *.rst +include *.md +include *.yml include *.ini include *.cfg include *.txt diff --git a/README.rst b/README.md similarity index 73% rename from README.rst rename to README.md index 31bb2d0..591758d 100644 --- a/README.rst +++ b/README.md @@ -1,33 +1,20 @@ GuessIt ======= -.. image:: http://img.shields.io/pypi/v/guessit.svg - :target: https://pypi.python.org/pypi/guessit - :alt: Latest Version +[![Latest Version](http://img.shields.io/pypi/v/guessit.svg)](https://pypi.python.org/pypi/guessit) +[![LGPLv3 License](http://img.shields.io/badge/license-LGPLv3-blue.svg)]() +[![Build Status](https://img.shields.io/github/workflow/status/guessit-io/guessit/ci)](https://github.com/guessit-io/guessit/actions?query=workflow%3Aci) +[![Coveralls](http://img.shields.io/coveralls/guessit-io/guessit/master.svg)](https://coveralls.io/github/guessit-io/guessit?branch=master) +[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/relekang/python-semantic-release) -.. image:: http://img.shields.io/badge/license-LGPLv3-blue.svg - :target: https://pypi.python.org/pypi/guessit - :alt: LGPLv3 License +GuessIt is a python library that extracts as much information as +possible from a video filename. -.. image:: http://img.shields.io/travis/guessit-io/guessit.svg - :target: https://travis-ci.org/guessit-io/guessit - :alt: Build Status +It has a very powerful matcher that allows to guess properties from a +video using its filename only. This matcher works with both movies and +tv shows episodes. -.. image:: http://img.shields.io/coveralls/guessit-io/guessit/master.svg - :target: https://coveralls.io/github/guessit-io/guessit?branch=master - :alt: Coveralls - -.. image:: https://img.shields.io/badge/Hu-Board-7965cc.svg - :target: https://huboard.com/guessit-io/guessit - :alt: HuBoard - - -GuessIt is a python library that extracts as much information as possible from a video filename. - -It has a very powerful matcher that allows to guess properties from a video using its filename only. -This matcher works with both movies and tv shows episodes. - -For example, GuessIt can do the following:: +For example, GuessIt can do the following: $ guessit "Treme.1x03.Right.Place,.Wrong.Time.HDTV.XviD-NoTV.avi" For: Treme.1x03.Right.Place,.Wrong.Time.HDTV.XviD-NoTV.avi @@ -44,31 +31,34 @@ For example, GuessIt can do the following:: "type": "episode" } -More information are available at `ReadTheDocs `_. +More information are available at [guessit.io](http://guessit.io/). Migration note --------------- -GuessIt 2 has been rewriten from scratch. GuessIt is now a release name parser only, and support for additional -features like hashes computations has been dropped. +----- -To migrate from guessit ``0.x`` or ``1.x`` to ``guessit 2.x``, please read -`migration.rst `_. +GuessIt 2 has been rewriten from scratch. GuessIt is now a release name +parser only, and support for additional features like hashes +computations has been dropped. -To migrate from guessit ``2.x`` to ``3.x``, please read `migration2to3.rst `_. +To migrate from guessit `0.x` or `1.x` to `guessit 2.x`, please read +[migration.md](./docs/migration.md). + +To migrate from guessit `2.x` to `3.x`, please read +[migration2to3.md](./docs/migration2to3.md). Install -------- +----- -Installing GuessIt is simple with `pip `_:: +Installing GuessIt is simple with [pip](http://www.pip-installer.org/): $ pip install guessit -You can also `install GuessIt from sources `_ +You can also [install GuessIt from sources](./docs/sources.md) Usage ----- -GuessIt can be used from command line:: +GuessIt can be used from command line: $ guessit usage: guessit [-h] [-t TYPE] [-n] [-Y] [-D] [-L ALLOWED_LANGUAGES] @@ -153,21 +143,20 @@ GuessIt can be used from command line:: -V, --values Display property values that can be guessed. --version Display the guessit version. - -It can also be used as a python module:: +It can also be used as a python module: >>> from guessit import guessit >>> guessit('Treme.1x03.Right.Place,.Wrong.Time.HDTV.XviD-NoTV.avi') MatchesDict([('title', 'Treme'), ('season', 1), ('episode', 3), ('episode_title', 'Right Place, Wrong Time'), ('source', 'HDTV'), ('video_codec', 'Xvid'), ('release_group', 'NoTV'), ('container', 'avi'), ('mimetype', 'video/x-msvideo'), ('type', 'episode')]) -``MatchesDict`` is a dict that keeps matches ordering. +`MatchesDict` is a dict that keeps matches ordering. Command line options can be given as dict or string to the second argument. Docker ------ -GuessIt is also available on `Docker Hub `_ as a Docker Image.:: +GuessIt is also available on [Docker Hub](https://hub.docker.com/r/guessit/guessit/) as a Docker Image.: $ docker run -it guessit/guessit "Treme.1x03.Right.Place,.Wrong.Time.HDTV.XviD-NoTV.avi" For: Treme.1x03.Right.Place,.Wrong.Time.HDTV.XviD-NoTV.avi @@ -187,12 +176,11 @@ GuessIt is also available on `Docker Hub `_. Feel free to open an issue if you think you -have found a bug or something is missing in guessit. +This project is hosted on [GitHub](https://github.com/guessit-io/guessit). Feel free to open an issue if you think you have found a bug or something is missing in guessit. -GuessIt relies on `Rebulk `_ project for pattern and rules registration. +GuessIt relies on [Rebulk](https://github.com/Toilal/rebulk) project for pattern and rules registration. License ------- -GuessIt is licensed under the `LGPLv3 license `_. +GuessIt is licensed under the [LGPLv3 license](http://www.gnu.org/licenses/lgpl.html). diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index 858c0ee..0000000 --- a/docs/Makefile +++ /dev/null @@ -1,192 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " coverage to run coverage check of the documentation (if enabled)" - -clean: - rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/GuessIt.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/GuessIt.qhc" - -applehelp: - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/GuessIt" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/GuessIt" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -coverage: - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/docs/_static/coinwidget/coin.css b/docs/_static/coinwidget/coin.css deleted file mode 100644 index 1505992..0000000 --- a/docs/_static/coinwidget/coin.css +++ /dev/null @@ -1,96 +0,0 @@ -/** - -Donations welcome: - BTC: 122MeuyZpYz4GSHNrF98e6dnQCXZfHJeGS - LTC: LY1L6M6yG26b4sRkLv4BbkmHhPn8GR5fFm - ~ Thank you! - ------------- - -MIT License (MIT) - -Copyright (c) 2013 http://coinwidget.com/ -Copyright (c) 2013 http://scotty.cc/ - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -*/ - -/* button */ -.COINWIDGETCOM_CONTAINER {height:18px;display:inline-block;font-family:arial;line-height:12px;margin-right:5px;} -.COINWIDGETCOM_CONTAINER > span {padding:3px;background:#fff;box-shadow:1px 1px 2px rgba(0,0,0,0.05);border:1px solid #ddd;position:relative;min-height:14px;max-height:14px;min-width:14px;text-align:center;font-size:11px;color:#666;margin-left:7px;border-radius:3px 3px 3px 3px;} -.COINWIDGETCOM_CONTAINER > span:after, .COINWIDGETCOM_CONTAINER > span:before {right: 100%;border: solid transparent;content: " ";height: 0;width: 0;position: absolute;pointer-events: none;} -.COINWIDGETCOM_CONTAINER > span:after {border-color: rgba(255, 255, 255, 0);border-right-color: #fff;border-width: 5px;top: 50%;margin-top: -5px;} -.COINWIDGETCOM_CONTAINER > span:before {border-color: rgba(221, 221, 221, 0);border-right-color: #ddd;border-width: 6px;top: 50%;margin-top: -6px;} -.COINWIDGETCOM_CONTAINER > span, -.COINWIDGETCOM_CONTAINER > a {display:inline-block;vertical-align:middle;height:18px;} -.COINWIDGETCOM_CONTAINER > a {background: #eeeeee;background: -moz-linear-gradient(top, #eeeeee 0%, #fafafa 100%);background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#eeeeee), color-stop(100%,#fafafa));background: -webkit-linear-gradient(top, #eeeeee 0%,#fafafa 100%);background: -o-linear-gradient(top, #eeeeee 0%,#fafafa 100%);background: -ms-linear-gradient(top, #eeeeee 0%,#fafafa 100%);background: linear-gradient(to bottom, #eeeeee 0%,#fafafa 100%);filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#fafafa',GradientType=0 );padding:2px 4px;border:1px solid #ccc;font-size:11px;box-shadow:1px 1px 4px rgba(0,0,0,0.075),inset 1px 1px 0px rgba(255,255,255,0.8);border-radius:2px 2px 2px 2px;} -.COINWIDGETCOM_CONTAINER > a:hover {background: #fafafa;background: -moz-linear-gradient(top, #fafafa 0%, #eeeeee 100%);background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fafafa), color-stop(100%,#eeeeee));background: -webkit-linear-gradient(top, #fafafa 0%,#eeeeee 100%);background: -o-linear-gradient(top, #fafafa 0%,#eeeeee 100%);background: -ms-linear-gradient(top, #fafafa 0%,#eeeeee 100%);background: linear-gradient(to bottom, #fafafa 0%,#eeeeee 100%);filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fafafa', endColorstr='#eeeeee',GradientType=0 );} -.COINWIDGETCOM_CONTAINER > a > img, -.COINWIDGETCOM_CONTAINER > a > span {display:inline-block;vertical-align:middle;} -.COINWIDGETCOM_CONTAINER > a > span {margin:0px 3px;color:#444;text-shadow:0px -1px 0px #fff;font-weight:bold;} -.COINWIDGETCOM_CONTAINER > span > img, -.COINWIDGETCOM_CONTAINER > a > img {padding:0px;margin:0px!important;border:0px;} - -/* window */ -.COINWIDGETCOM_WINDOW {font-family:arial;position:absolute;z-index:99999999998;background:#fff;border:1px solid #ccc;padding:5px 5px 25px 5px;background: #fafafa;background: -moz-linear-gradient(top, #fafafa 0%, #eeeeee 100%);background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fafafa), color-stop(100%,#eeeeee));background: -webkit-linear-gradient(top, #fafafa 0%,#eeeeee 100%);background: -o-linear-gradient(top, #fafafa 0%,#eeeeee 100%);background: -ms-linear-gradient(top, #fafafa 0%,#eeeeee 100%);background: linear-gradient(to bottom, #fafafa 0%,#eeeeee 100%);filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fafafa', endColorstr='#eeeeee',GradientType=0 );border-radius:2px 2px 2px 2px;top:90%;left:45%;} - -/* window alignments */ -.COINWIDGETCOM_WINDOW_BC {box-shadow:0px 3px 4px rgba(0,0,0,0.1),inset 1px 1px 0px #fff;} -.COINWIDGETCOM_WINDOW_BL {box-shadow:3px 3px 4px rgba(0,0,0,0.1),inset 1px 1px 0px #fff;} -.COINWIDGETCOM_WINDOW_BR {box-shadow:3px 3px 4px rgba(0,0,0,0.1),inset 1px 1px 0px #fff;} -.COINWIDGETCOM_WINDOW_AC {box-shadow:0px 3px 4px rgba(0,0,0,0.1),inset 1px 1px 0px #fff;} -.COINWIDGETCOM_WINDOW_AL {box-shadow:3px 3px 4px rgba(0,0,0,0.1),inset 1px 1px 0px #fff;} -.COINWIDGETCOM_WINDOW_AR {box-shadow:3px 3px 4px rgba(0,0,0,0.1),inset 1px 1px 0px #fff;} - -.COINWIDGETCOM_WINDOW_BC:after, .COINWIDGETCOM_WINDOW_BC:before {bottom: 100%;border: solid transparent;content: " ";height: 0;width: 0;position: absolute;pointer-events: none;} -.COINWIDGETCOM_WINDOW_BC:after {border-color: rgba(250, 250, 250, 0);border-bottom-color: #fafafa;border-width: 5px;left: 50%;margin-left: -5px;} -.COINWIDGETCOM_WINDOW_BC:before {border-color: rgba(204, 204, 204, 0);border-bottom-color: #ccc;border-width: 6px;left: 50%;margin-left: -6px;} -.COINWIDGETCOM_WINDOW_BL:after, .COINWIDGETCOM_WINDOW_BL:before {bottom: 100%;border: solid transparent;content: " ";height: 0;width: 0;position: absolute;pointer-events: none;} -.COINWIDGETCOM_WINDOW_BL:after {border-color: rgba(250, 250, 250, 0);border-bottom-color: #fafafa;border-width: 5px;left: 10%;margin-left: -5px;} -.COINWIDGETCOM_WINDOW_BL:before {border-color: rgba(204, 204, 204, 0);border-bottom-color: #ccc;border-width: 6px;left: 10%;margin-left: -6px;} -.COINWIDGETCOM_WINDOW_BR:after, .COINWIDGETCOM_WINDOW_BR:before {bottom: 100%;border: solid transparent;content: " ";height: 0;width: 0;position: absolute;pointer-events: none;} -.COINWIDGETCOM_WINDOW_BR:after {border-color: rgba(250, 250, 250, 0);border-bottom-color: #fafafa;border-width: 5px;left: 90%;margin-left: -5px;} -.COINWIDGETCOM_WINDOW_BR:before {border-color: rgba(204, 204, 204, 0);border-bottom-color: #ccc;border-width: 6px;left: 90%;margin-left: -6px;} -.COINWIDGETCOM_WINDOW_AC:after, .COINWIDGETCOM_WINDOW_AC:before {top: 100%;border: solid transparent;content: " ";height: 0;width: 0;position: absolute;pointer-events: none;} -.COINWIDGETCOM_WINDOW_AC:after {border-color: rgba(238, 238, 238, 0);border-top-color: #eeeeee;border-width: 5px;left: 50%;margin-left: -5px;} -.COINWIDGETCOM_WINDOW_AC:before {border-color: rgba(204, 204, 204, 0);border-top-color: #ccc;border-width: 6px;left: 50%;margin-left: -6px;} -.COINWIDGETCOM_WINDOW_AL:after, .COINWIDGETCOM_WINDOW_AL:before {top: 100%;border: solid transparent;content: " ";height: 0;width: 0;position: absolute;pointer-events: none;} -.COINWIDGETCOM_WINDOW_AL:after {border-color: rgba(238, 238, 238, 0);border-top-color: #eeeeee;border-width: 5px;left: 10%;margin-left: -5px;} -.COINWIDGETCOM_WINDOW_AL:before {border-color: rgba(204, 204, 204, 0);border-top-color: #ccc;border-width: 6px;left: 10%;margin-left: -6px;} -.COINWIDGETCOM_WINDOW_AR:after, .COINWIDGETCOM_WINDOW_AR:before {top: 100%;border: solid transparent;content: " ";height: 0;width: 0;position: absolute;pointer-events: none;} -.COINWIDGETCOM_WINDOW_AR:after {border-color: rgba(238, 238, 238, 0);border-top-color: #eeeeee;border-width: 5px;left: 90%;margin-left: -5px;} -.COINWIDGETCOM_WINDOW_AR:before {border-color: rgba(204, 204, 204, 0);border-top-color: #ccc;border-width: 6px;left: 90%;margin-left: -6px;} - -/* window elements */ -.COINWIDGETCOM_WINDOW > label {font-size:12px;font-weight:bold;color:#444;display:block;width:250px;padding:3px;text-shadow:0px -1px 0px #fff;} -.COINWIDGETCOM_WINDOW > input {padding:4px 3px 4px 20px;border-radius:2px 2px 2px 2px;border:1px solid #ccc;display:block;width:210px;font-size:10px;margin-bottom:5px;} -.COINWIDGETCOM_WINDOW > a.COINWIDGETCOM_CLOSER {position:absolute;top:3px;right:7px;color:#666;font-weight:bold;text-decoration:none;} -.COINWIDGETCOM_WINDOW > a.COINWIDGETCOM_CLOSER:hover {color:#aaa;} -.COINWIDGETCOM_WINDOW > img {position:absolute;border:none;margin:0px;padding:0px;} -.COINWIDGETCOM_WINDOW > a img {border:none;margin:0px;padding:0px;} -.COINWIDGETCOM_WINDOW > a.COINWIDGETCOM_WALLETURI {position:absolute;} -.COINWIDGETCOM_WINDOW > span {float: left;font-size:12px;font-weight:bold;display: block;width: 115px;text-align: left;border: 1px solid #ffeeb3;background: #fff8ef;text-shadow:0px -1px 0px #fffefa;padding: 5px;margin-right: 4px;box-shadow: inset 1px 1px 0px #fff;color:#444!important;} -.COINWIDGETCOM_WINDOW > span.end {margin-right:0px;} -.COINWIDGETCOM_WINDOW > span > small {display:block;font-size:11px;font-weight:normal;} -.COINWIDGETCOM_WINDOW > a.COINWIDGETCOM_CREDITS {position:absolute;bottom:5px;right:5px;font-size:11px;color:#555;text-decoration:none;text-shadow:0px -1px 0px #fff;} -.COINWIDGETCOM_WINDOW > a.COINWIDGETCOM_CREDITS:hover {color:#111;} -.COINWIDGETCOM_WINDOW > img.COINWIDGETCOM_QRCODE {position:absolute;bottom:5px;left:6px;} -.COINWIDGETCOM_WINDOW > img.COINWIDGETCOM_QRCODE_LARGE {position:absolute;bottom:5px;left:30px;display:none;border:1px solid #333;border-radius:4px;z-index:99999999;box-shadow:0px 0px 8px rgba(0,0,0,0.5);} - diff --git a/docs/_static/coinwidget/coin.js b/docs/_static/coinwidget/coin.js deleted file mode 100644 index a4184e0..0000000 --- a/docs/_static/coinwidget/coin.js +++ /dev/null @@ -1,332 +0,0 @@ -/** - -Donations welcome: - BTC: 122MeuyZpYz4GSHNrF98e6dnQCXZfHJeGS - LTC: LY1L6M6yG26b4sRkLv4BbkmHhPn8GR5fFm - ~ Thank you! - ------------- - -MIT License (MIT) - -Copyright (c) 2013 http://coinwidget.com/ -Copyright (c) 2013 http://scotty.cc/ - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -*/ - -if (typeof CoinWidgetComCounter != 'number') -var CoinWidgetComCounter = 0; - -if (typeof CoinWidgetCom != 'object') -var CoinWidgetCom = { - source: '_static/coinwidget/' - , config: [] - , go :function(config) { - config = CoinWidgetCom.validate(config); - CoinWidgetCom.config[CoinWidgetComCounter] = config; - CoinWidgetCom.loader.jquery(); - document.write(''); - CoinWidgetComCounter++; - } - , validate: function(config) { - var $accepted = []; - $accepted['currencies'] = ['bitcoin','litecoin']; - $accepted['counters'] = ['count','amount','hide']; - $accepted['alignment'] = ['al','ac','ar','bl','bc','br']; - if (!config.currency || !CoinWidgetCom.in_array(config.currency,$accepted['currencies'])) - config.currency = 'bitcoin'; - if (!config.counter || !CoinWidgetCom.in_array(config.counter,$accepted['counters'])) - config.counter = 'count'; - if (!config.alignment || !CoinWidgetCom.in_array(config.alignment,$accepted['alignment'])) - config.alignment = 'bl'; - if (typeof config.qrcode != 'boolean') - config.qrcode = true; - if (typeof config.auto_show != 'boolean') - config.auto_show = false; - if (!config.wallet_address) - config.wallet_address = 'My '+ config.currency +' wallet_address is missing!'; - if (!config.lbl_button) - config.lbl_button = 'Donate'; - if (!config.lbl_address) - config.lbl_address = 'My Bitcoin Address:'; - if (!config.lbl_count) - config.lbl_count = 'Donation'; - if (!config.lbl_amount) - config.lbl_amount = 'BTC'; - if (typeof config.decimals != 'number' || config.decimals < 0 || config.decimals > 10) - config.decimals = 4; - - return config; - } - , init: function(){ - CoinWidgetCom.loader.stylesheet(); - $(window).resize(function(){ - CoinWidgetCom.window_resize(); - }); - setTimeout(function(){ - /* this delayed start gives the page enough time to - render multiple widgets before pinging for counts. - */ - CoinWidgetCom.build(); - },800); - } - , build: function(){ - $containers = $("span[data-coinwidget-instance]"); - $containers.each(function(i,v){ - $config = CoinWidgetCom.config[$(this).attr('data-coinwidget-instance')]; - $counter = $config.counter == 'hide'?'':(''); - $button = ''+$config.lbl_button+''+$counter; - $(this).html($button); - $(this).find('> a').unbind('click').click(function(e){ - e.preventDefault(); - CoinWidgetCom.show(this); - }); - }); - CoinWidgetCom.counters(); - } - , window_resize: function(){ - $.each(CoinWidgetCom.config,function(i,v){ - CoinWidgetCom.window_position(i); - }); - } - , window_position: function($instance){ - $config = CoinWidgetCom.config[$instance]; - coin_window = "#COINWIDGETCOM_WINDOW_"+$instance; - - obj = "span[data-coinwidget-instance='"+$instance+"'] > a"; - /* to make alignment relative to the full width of the container instead - of just the button change this occurence of $(obj) to $(obj).parent(), - do the same for the occurences within the switch statement. */ - $pos = $(obj).offset(); - switch ($config.alignment) { - default: - case 'al': /* above left */ - $top = $pos.top - $(coin_window).outerHeight() - 10; - $left = $pos.left; - break; - case 'ac': /* above center */ - $top = $pos.top - $(coin_window).outerHeight() - 10; - $left = $pos.left + ($(obj).outerWidth()/2) - ($(coin_window).outerWidth()/2); - break; - case 'ar': /* above right */ - $top = $pos.top - $(coin_window).outerHeight() - 10; - $left = $pos.left + $(obj).outerWidth() - $(coin_window).outerWidth(); - break; - case 'bl': /* bottom left */ - $top = $pos.top + $(obj).outerHeight() + 10; - $left = $pos.left; - break; - case 'bc': /* bottom center */ - $top = $pos.top + $(obj).outerHeight() + 10; - $left = $pos.left + ($(obj).outerWidth()/2) - ($(coin_window).outerWidth()/2); - break; - case 'br': /* bottom right */ - $top = $pos.top + $(obj).outerHeight() + 10; - $left = $pos.left + $(obj).outerWidth() - $(coin_window).outerWidth(); - break; - } - if ($(coin_window).is(':visible')) { - $(coin_window).stop().animate({'z-index':99999999999,'top':$top,'left':$left},150); - } else { - $(coin_window).stop().css({'z-index':99999999998,'top':$top,'left':$left}); - } - } - , counter: [] - , counters: function(){ - $addresses = []; - $.each(CoinWidgetCom.config,function(i,v){ - $instance = i; - $config = v; - if ($config.counter != 'hide') - $addresses.push($instance+'_'+$config.currency+'_'+$config.wallet_address); - else { - if ($config.auto_show) - $("span[data-coinwidget-instance='"+i+"']").find('> a').click(); - } - }); - if ($addresses.length) { - CoinWidgetCom.loader.script({ - id: 'COINWIDGETCOM_INFO'+Math.random() - , source: (CoinWidgetCom.source+'lookup.php?data='+$addresses.join('|')) - , callback: function(){ - if (typeof COINWIDGETCOM_DATA == 'object') { - CoinWidgetCom.counter = COINWIDGETCOM_DATA; - $.each(CoinWidgetCom.counter,function(i,v){ - $config = CoinWidgetCom.config[i]; - if (!v.count || v == null) v = {count:0,amount:0}; - $("span[data-coinwidget-instance='"+i+"']").find('> span').html($config.counter=='count'?v.count:(v.amount.toFixed($config.decimals)+' '+$config.lbl_amount)); - if ($config.auto_show) { - $("span[data-coinwidget-instance='"+i+"']").find('> a').click(); - } - }); - } - if ($("span[data-coinwidget-instance] > span img").length > 0) { - setTimeout(function(){CoinWidgetCom.counters();},2500); - } - } - }); - } - } - , show: function(obj) { - $instance = $(obj).parent().attr('data-coinwidget-instance'); - $config = CoinWidgetCom.config[$instance]; - coin_window = "#COINWIDGETCOM_WINDOW_"+$instance; - $(".COINWIDGETCOM_WINDOW").css({'z-index':99999999998}); - if (!$(coin_window).length) { - - $sel = !navigator.userAgent.match(/iPhone/i)?'onclick="this.select();"':'onclick="prompt(\'Select all and copy:\',\''+$config.wallet_address+'\');"'; - - $html = '' - + '' - + '' - + 'CoinWidget.com' - + '' - + 'x' - + '' - ; - if ($config.counter != 'hide') { - $html += '0'+$config.lbl_count+'' - + '0.00'+$config.lbl_amount+'' - ; - } - if ($config.qrcode) { - $html += '' - + '' - ; - } - var $div = $('
'); - $('body').append($div); - $div.attr({ - 'id': 'COINWIDGETCOM_WINDOW_'+$instance - }).addClass('COINWIDGETCOM_WINDOW COINWIDGETCOM_WINDOW_'+$config.currency.toUpperCase()+' COINWIDGETCOM_WINDOW_'+$config.alignment.toUpperCase()).html($html).unbind('click').bind('click',function(){ - $(".COINWIDGETCOM_WINDOW").css({'z-index':99999999998}); - $(this).css({'z-index':99999999999}); - }); - if ($config.qrcode) { - $(coin_window).find('.COINWIDGETCOM_QRCODE').bind('mouseenter click',function(){ - $config = CoinWidgetCom.config[$(this).attr('data-coinwidget-instance')]; - $lrg = $(this).parent().find('.COINWIDGETCOM_QRCODE_LARGE'); - if ($lrg.is(':visible')) { - $lrg.hide(); - return; - } - $lrg.attr({ - src: CoinWidgetCom.source +'qr/?address='+$config.wallet_address - }).show(); - }).bind('mouseleave',function(){ - $lrg = $(this).parent().find('.COINWIDGETCOM_QRCODE_LARGE'); - $lrg.hide(); - }); - } - } else { - if ($(coin_window).is(':visible')) { - CoinWidgetCom.hide($instance); - return; - } - } - CoinWidgetCom.window_position($instance); - $(coin_window).show(); - $pos = $(coin_window).find('input').position(); - $(coin_window).find('img.COINWIDGET_INPUT_ICON').css({'top':$pos.top+3,'left':$pos.left+3}); - $(coin_window).find('.COINWIDGETCOM_WALLETURI').css({'top':$pos.top+3,'left':$pos.left+$(coin_window).find('input').outerWidth()+3}); - if ($config.counter != 'hide') { - $counters = CoinWidgetCom.counter[$instance]; - if ($counters == null) { - $counters = { - count: 0, - amount: 0 - }; - } - if ($counters.count == null) $counters.count = 0; - if ($counters.amount == null) $counters.amount = 0; - $(coin_window).find('.COINWIDGETCOM_COUNT').html($counters.count+ ''+$config.lbl_count+''); - $(coin_window).find('.COINWIDGETCOM_AMOUNT').html($counters.amount.toFixed($config.decimals)+ ''+$config.lbl_amount+''); - } - if (typeof $config.onShow == 'function') - $config.onShow(); - } - , hide: function($instance) { - $config = CoinWidgetCom.config[$instance]; - coin_window = "#COINWIDGETCOM_WINDOW_"+$instance; - $(coin_window).fadeOut(); - if (typeof $config.onHide == 'function') { - $config.onHide(); - } - } - , in_array: function(needle,haystack) { - for (i=0;i'); - $("head").append($link); - $link.attr({ - id : 'COINWIDGETCOM_STYLESHEET' - , rel : 'stylesheet' - , type : 'text/css' - , href : CoinWidgetCom.source+'coin.css' - }); - } - } - , jquery: function(){ - if (!window.jQuery && !CoinWidgetCom.loader.loading_jquery) { - $prefix = window.location.protocol=='file:'?'http:':''; - CoinWidgetCom.loader.script({ - id : 'COINWIDGETCOM_JQUERY' - , source : $prefix + '//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' - , callback : function(){ - CoinWidgetCom.init(); - } - }); - return; - } - CoinWidgetCom.init(); - } - } -}; diff --git a/docs/_static/coinwidget/icon_bitcoin.png b/docs/_static/coinwidget/icon_bitcoin.png deleted file mode 100644 index 85e491b..0000000 Binary files a/docs/_static/coinwidget/icon_bitcoin.png and /dev/null differ diff --git a/docs/_static/coinwidget/icon_litecoin.png b/docs/_static/coinwidget/icon_litecoin.png deleted file mode 100644 index 4078f08..0000000 Binary files a/docs/_static/coinwidget/icon_litecoin.png and /dev/null differ diff --git a/docs/_static/coinwidget/icon_loading.gif b/docs/_static/coinwidget/icon_loading.gif deleted file mode 100644 index 35bd5d6..0000000 Binary files a/docs/_static/coinwidget/icon_loading.gif and /dev/null differ diff --git a/docs/_static/coinwidget/icon_qrcode.png b/docs/_static/coinwidget/icon_qrcode.png deleted file mode 100644 index 41a84aa..0000000 Binary files a/docs/_static/coinwidget/icon_qrcode.png and /dev/null differ diff --git a/docs/_static/coinwidget/icon_wallet.png b/docs/_static/coinwidget/icon_wallet.png deleted file mode 100644 index 6a24de7..0000000 Binary files a/docs/_static/coinwidget/icon_wallet.png and /dev/null differ diff --git a/docs/_static/guessit-logo.png b/docs/_static/guessit-logo.png deleted file mode 100644 index af951c0..0000000 Binary files a/docs/_static/guessit-logo.png and /dev/null differ diff --git a/docs/_static/lgplv3-88x31.png b/docs/_static/lgplv3-88x31.png deleted file mode 100644 index 2fb09ef..0000000 Binary files a/docs/_static/lgplv3-88x31.png and /dev/null differ diff --git a/docs/_templates/sidebarintro.html b/docs/_templates/sidebarintro.html deleted file mode 100644 index 7390541..0000000 --- a/docs/_templates/sidebarintro.html +++ /dev/null @@ -1,81 +0,0 @@ - -

- -

- -

- - Build status - - - - License - -

- -

- - Travis-CI - - - - Code coverage - -

- -

- GuessIt is a python library that extracts as much information as possible from a video filename. -

- -

Useful Links

- - -

Donate

-

- If you like GuessIt, please consider making a donation in - bitcoins or in - litecoins. -

- - - - - - - -

diff --git a/docs/_templates/sidebarlogo.html b/docs/_templates/sidebarlogo.html deleted file mode 100644 index 5ed5ccc..0000000 --- a/docs/_templates/sidebarlogo.html +++ /dev/null @@ -1,33 +0,0 @@ - -

- -

- -

- - Build status - - - - License - -

- -

- - Travis-CI - - - - Code coverage - -

- -

- GuessIt is a python library that extracts as much information as possible from a video filename. -

diff --git a/docs/_themes/.gitignore b/docs/_themes/.gitignore deleted file mode 100644 index 66b6e4c..0000000 --- a/docs/_themes/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.pyc -*.pyo -.DS_Store diff --git a/docs/_themes/LICENSE b/docs/_themes/LICENSE deleted file mode 100644 index 5bb5ff5..0000000 --- a/docs/_themes/LICENSE +++ /dev/null @@ -1,46 +0,0 @@ -Modifications: - -Copyright (c) 2012 Nicolas Wack -Copyright (c) 2011 Kenneth Reitz. - - -Original Project: - -Copyright (c) 2010 by Armin Ronacher. - - -Some rights reserved. - -Redistribution and use in source and binary forms of the theme, with or -without modification, are permitted provided that the following conditions -are met: - -* Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - -* The names of the contributors may not be used to endorse or - promote products derived from this software without specific - prior written permission. - -We kindly ask you to only use these themes in an unmodified manner just -for Flask and Flask-related products, not for unrelated projects. If you -like the visual style and want to use it for your own projects, please -consider making some larger changes to the themes (such as changing -font faces, sizes, colors or margins). - -THIS THEME IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS THEME, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. diff --git a/docs/_themes/README.rst b/docs/_themes/README.rst deleted file mode 100644 index 2e875d4..0000000 --- a/docs/_themes/README.rst +++ /dev/null @@ -1,25 +0,0 @@ -krTheme Sphinx Style -==================== - -This repository contains sphinx styles Kenneth Reitz uses in most of -his projects. It is a derivative of Mitsuhiko's themes for Flask and Flask related -projects. To use this style in your Sphinx documentation, follow -this guide: - -1. put this folder as _themes into your docs folder. Alternatively - you can also use git submodules to check out the contents there. - -2. add this to your conf.py: :: - - sys.path.append(os.path.abspath('_themes')) - html_theme_path = ['_themes'] - html_theme = 'flask' - -The following themes exist: - -**kr** - the standard flask documentation theme for large projects - -**kr_small** - small one-page theme. Intended to be used by very small addon libraries. - diff --git a/docs/_themes/flask_theme_support.py b/docs/_themes/flask_theme_support.py deleted file mode 100644 index 33f4744..0000000 --- a/docs/_themes/flask_theme_support.py +++ /dev/null @@ -1,86 +0,0 @@ -# flasky extensions. flasky pygments style based on tango style -from pygments.style import Style -from pygments.token import Keyword, Name, Comment, String, Error, \ - Number, Operator, Generic, Whitespace, Punctuation, Other, Literal - - -class FlaskyStyle(Style): - background_color = "#f8f8f8" - default_style = "" - - styles = { - # No corresponding class for the following: - #Text: "", # class: '' - Whitespace: "underline #f8f8f8", # class: 'w' - Error: "#a40000 border:#ef2929", # class: 'err' - Other: "#000000", # class 'x' - - Comment: "italic #8f5902", # class: 'c' - Comment.Preproc: "noitalic", # class: 'cp' - - Keyword: "bold #004461", # class: 'k' - Keyword.Constant: "bold #004461", # class: 'kc' - Keyword.Declaration: "bold #004461", # class: 'kd' - Keyword.Namespace: "bold #004461", # class: 'kn' - Keyword.Pseudo: "bold #004461", # class: 'kp' - Keyword.Reserved: "bold #004461", # class: 'kr' - Keyword.Type: "bold #004461", # class: 'kt' - - Operator: "#582800", # class: 'o' - Operator.Word: "bold #004461", # class: 'ow' - like keywords - - Punctuation: "bold #000000", # class: 'p' - - # because special names such as Name.Class, Name.Function, etc. - # are not recognized as such later in the parsing, we choose them - # to look the same as ordinary variables. - Name: "#000000", # class: 'n' - Name.Attribute: "#c4a000", # class: 'na' - to be revised - Name.Builtin: "#004461", # class: 'nb' - Name.Builtin.Pseudo: "#3465a4", # class: 'bp' - Name.Class: "#000000", # class: 'nc' - to be revised - Name.Constant: "#000000", # class: 'no' - to be revised - Name.Decorator: "#888", # class: 'nd' - to be revised - Name.Entity: "#ce5c00", # class: 'ni' - Name.Exception: "bold #cc0000", # class: 'ne' - Name.Function: "#000000", # class: 'nf' - Name.Property: "#000000", # class: 'py' - Name.Label: "#f57900", # class: 'nl' - Name.Namespace: "#000000", # class: 'nn' - to be revised - Name.Other: "#000000", # class: 'nx' - Name.Tag: "bold #004461", # class: 'nt' - like a keyword - Name.Variable: "#000000", # class: 'nv' - to be revised - Name.Variable.Class: "#000000", # class: 'vc' - to be revised - Name.Variable.Global: "#000000", # class: 'vg' - to be revised - Name.Variable.Instance: "#000000", # class: 'vi' - to be revised - - Number: "#990000", # class: 'm' - - Literal: "#000000", # class: 'l' - Literal.Date: "#000000", # class: 'ld' - - String: "#4e9a06", # class: 's' - String.Backtick: "#4e9a06", # class: 'sb' - String.Char: "#4e9a06", # class: 'sc' - String.Doc: "italic #8f5902", # class: 'sd' - like a comment - String.Double: "#4e9a06", # class: 's2' - String.Escape: "#4e9a06", # class: 'se' - String.Heredoc: "#4e9a06", # class: 'sh' - String.Interpol: "#4e9a06", # class: 'si' - String.Other: "#4e9a06", # class: 'sx' - String.Regex: "#4e9a06", # class: 'sr' - String.Single: "#4e9a06", # class: 's1' - String.Symbol: "#4e9a06", # class: 'ss' - - Generic: "#000000", # class: 'g' - Generic.Deleted: "#a40000", # class: 'gd' - Generic.Emph: "italic #000000", # class: 'ge' - Generic.Error: "#ef2929", # class: 'gr' - Generic.Heading: "bold #000080", # class: 'gh' - Generic.Inserted: "#00A000", # class: 'gi' - Generic.Output: "#888", # class: 'go' - Generic.Prompt: "#745334", # class: 'gp' - Generic.Strong: "bold #000000", # class: 'gs' - Generic.Subheading: "bold #800080", # class: 'gu' - Generic.Traceback: "bold #a40000", # class: 'gt' - } diff --git a/docs/_themes/kr/layout.html b/docs/_themes/kr/layout.html deleted file mode 100644 index fbe9cf8..0000000 --- a/docs/_themes/kr/layout.html +++ /dev/null @@ -1,17 +0,0 @@ -{%- extends "basic/layout.html" %} -{%- block extrahead %} - {{ super() }} - - - {% if theme_touch_icon %} - - {% endif %} - -{% endblock %} -{%- block relbar2 %}{% endblock %} -{%- block footer %} - - -{%- endblock %} diff --git a/docs/_themes/kr/relations.html b/docs/_themes/kr/relations.html deleted file mode 100644 index 3bbcde8..0000000 --- a/docs/_themes/kr/relations.html +++ /dev/null @@ -1,19 +0,0 @@ -

Related Topics

- diff --git a/docs/_themes/kr/static/flasky.css_t b/docs/_themes/kr/static/flasky.css_t deleted file mode 100644 index 1e4e581..0000000 --- a/docs/_themes/kr/static/flasky.css_t +++ /dev/null @@ -1,581 +0,0 @@ -/* - * flasky.css_t - * ~~~~~~~~~~~~ - * - * :copyright: Copyright 2010 by Armin Ronacher. Modifications by Kenneth Reitz and Nicolas Wack. - * :license: Flask Design License, see LICENSE for details. - */ - -{% set page_width = '1024px' %} -{% set sidebar_width = '280px' %} - -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: 'Ubuntu', sans-serif; - font-size: 17px; - background-color: white; - color: #000; - margin: 0; - padding: 0; -} - -div.document { - width: {{ page_width }}; - margin: 30px auto 0 auto; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 {{ sidebar_width }}; -} - -div.sphinxsidebar { - width: {{ sidebar_width }}; -} - -hr { - border: 1px solid #B1B4B6; -} - -div.body { - background-color: #ffffff; - color: #3E4349; - padding: 0 30px 0 30px; -} - -img.floatingflask { - padding: 0 0 10px 10px; - float: right; -} - -div.footer { - width: {{ page_width }}; - margin: 20px auto 30px auto; - font-size: 14px; - color: #888; - text-align: right; -} - -div.footer a { - color: #888; -} - -div.related { - display: none; -} - -div.sphinxsidebar a.dots { - color: #444; - text-decoration: none; - border-bottom: 1px dotted #999; -} - -div.sphinxsidebar a.dots:hover { - border-bottom: 1px solid #999; -} - - -div.sphinxsidebar a.nodots { - text-decoration: none; - border-bottom: 0px; -} - -div.sphinxsidebar a.nodots:hover { - border-bottom: 0px; -} - - -div.sphinxsidebar { - font-size: 14px; - line-height: 1.5; -} - -div.sphinxsidebarwrapper { - padding: 18px 10px; -} - -div.sphinxsidebarwrapper p.logo { - padding: 0; - margin: -10px 0 0 -20px; - text-align: center; -} - -div.sphinxsidebar h3, -div.sphinxsidebar h4 { - font-family: 'Ubuntu', sans-serif; - color: #444; - font-size: 24px; - font-weight: normal; - margin: 0 0 5px 0; - padding: 0; -} - -div.sphinxsidebar h4 { - font-size: 20px; -} - -div.sphinxsidebar h3 a { - color: #444; -} - -div.sphinxsidebar p.logo a, -div.sphinxsidebar h3 a, -div.sphinxsidebar p.logo a:hover, -div.sphinxsidebar h3 a:hover { - border: none; -} - -div.sphinxsidebar p { - color: #555; - margin: 10px 0; -} - -div.sphinxsidebar ul { - margin: 10px 0; - padding: 0; - color: #000; -} - -div.sphinxsidebar input { - border: 1px solid #ccc; - font-family: 'Ubuntu', sans-serif; - font-size: 1em; -} - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: #004B6B; - text-decoration: underline; -} - -a:hover { - color: #6D4100; - text-decoration: underline; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: 'Ubuntu', sans-serif; - font-weight: normal; - margin: 30px 0px 10px 0px; - padding: 0; -} - -div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } -div.body h2 { font-size: 180%; } -div.body h3 { font-size: 150%; } -div.body h4 { font-size: 130%; } -div.body h5 { font-size: 100%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #ddd; - padding: 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - color: #444; - background: #eaeaea; -} - -div.body p, div.body dd, div.body li { - line-height: 1.4em; -} - -div.admonition { - background: #fafafa; - margin: 20px -30px; - padding: 10px 30px; - border-top: 1px solid #ccc; - border-bottom: 1px solid #ccc; -} - -div.admonition tt.xref, div.admonition a tt { - border-bottom: 1px solid #fafafa; -} - -dd div.admonition { - margin-left: -60px; - padding-left: 60px; -} - -div.admonition p.admonition-title { - font-family: 'Ubuntu', sans-serif; - font-weight: normal; - font-size: 24px; - margin: 0 0 10px 0; - padding: 0; - line-height: 1; -} - -div.admonition p.last { - margin-bottom: 0; -} - -div.highlight { - background-color: white; -} - -dt:target, .highlight { - background: #FAF3E8; -} - -div.note { - background-color: #eee; - border: 1px solid #ccc; -} - -div.seealso { - background-color: #ffc; - border: 1px solid #ff6; -} - -div.topic { - background-color: #eee; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre, tt { - font-family: 'Ubuntu Mono', sans-serif; - font-size: 0.9em; -} - -img.screenshot { -} - -tt.descname, tt.descclassname { - font-size: 0.95em; -} - -tt.descname { - padding-right: 0.08em; -} - -img.screenshot { - -moz-box-shadow: 2px 2px 4px #eee; - -webkit-box-shadow: 2px 2px 4px #eee; - box-shadow: 2px 2px 4px #eee; -} - -table.docutils { - border: 1px solid #888; - -moz-box-shadow: 2px 2px 4px #eee; - -webkit-box-shadow: 2px 2px 4px #eee; - box-shadow: 2px 2px 4px #eee; -} - -table.docutils td, table.docutils th { - border: 1px solid #888; - padding: 0.25em 0.7em; -} - -table.field-list, table.footnote { - border: none; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -table.footnote { - margin: 15px 0; - width: 100%; - border: 1px solid #eee; - background: #fdfdfd; - font-size: 0.9em; -} - -table.footnote + table.footnote { - margin-top: -15px; - border-top: none; -} - -table.field-list th { - padding: 0 0.8em 0 0; -} - -table.field-list td { - padding: 0; -} - -table.footnote td.label { - width: 0px; - padding: 0.3em 0 0.3em 0.5em; -} - -table.footnote td { - padding: 0.3em 0.5em; -} - -dl { - margin: 0; - padding: 0; -} - -dl dd { - margin-left: 30px; -} - -blockquote { - margin: 0 0 0 30px; - padding: 0; -} - -ul, ol { - margin: 10px 0 10px 30px; - padding: 0; -} - -pre { - background: #eee; - padding: 7px 10px; - margin: 15px -10px; - line-height: 1.3em; -} - -dl pre, blockquote pre, li pre { - margin-left: -20px; - padding-left: 20px; -} - -dl dl pre { - margin-left: -90px; - padding-left: 90px; -} - -tt { - background-color: #ecf0f3; - color: #222; - /* padding: 1px 2px; */ -} - -tt.xref, a tt { - background-color: #FBFBFB; - border-bottom: 1px solid white; -} - -a.reference { - text-decoration: none; - border-bottom: 1px dotted #004B6B; -} - -a.reference:hover { - border-bottom: 1px solid #6D4100; -} - -a.footnote-reference { - text-decoration: none; - font-size: 0.7em; - vertical-align: top; - border-bottom: 1px dotted #004B6B; -} - -a.footnote-reference:hover { - border-bottom: 1px solid #6D4100; -} - -a:hover tt { - background: #EEE; -} - - -@media screen and (max-width: 870px) { - - div.sphinxsidebar { - display: none; - } - - div.document { - width: 100%; - - } - - div.documentwrapper { - margin-left: 0; - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - } - - div.bodywrapper { - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - margin-left: 0; - } - - ul { - margin-left: 0; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .bodywrapper { - margin: 0; - } - - .footer { - width: auto; - } - - .github { - display: none; - } - - - -} - - - -@media screen and (max-width: 875px) { - - body { - margin: 0; - padding: 20px 30px; - } - - div.documentwrapper { - float: none; - background: white; - } - - div.sphinxsidebar { - display: block; - float: none; - width: 102.5%; - margin: 50px -30px -20px -30px; - padding: 10px 20px; - background: #333; - color: white; - } - - div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, - div.sphinxsidebar h3 a { - color: white; - } - - div.sphinxsidebar a { - color: #aaa; - } - - div.sphinxsidebar p.logo { - display: none; - } - - div.document { - width: 100%; - margin: 0; - } - - div.related { - display: block; - margin: 0; - padding: 10px 0 20px 0; - } - - div.related ul, - div.related ul li { - margin: 0; - padding: 0; - } - - div.footer { - display: none; - } - - div.bodywrapper { - margin: 0; - } - - div.body { - min-height: 0; - padding: 0; - } - - .rtd_doc_footer { - display: none; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .footer { - width: auto; - } - - .github { - display: none; - } -} - - -/* scrollbars */ - -::-webkit-scrollbar { - width: 6px; - height: 6px; -} - -::-webkit-scrollbar-button:start:decrement, -::-webkit-scrollbar-button:end:increment { - display: block; - height: 10px; -} - -::-webkit-scrollbar-button:vertical:increment { - background-color: #fff; -} - -::-webkit-scrollbar-track-piece { - background-color: #eee; - -webkit-border-radius: 3px; -} - -::-webkit-scrollbar-thumb:vertical { - height: 50px; - background-color: #ccc; - -webkit-border-radius: 3px; -} - -::-webkit-scrollbar-thumb:horizontal { - width: 50px; - background-color: #ccc; - -webkit-border-radius: 3px; -} - -/* misc. */ - -.revsys-inline { - display: none!important; -} diff --git a/docs/_themes/kr/theme.conf b/docs/_themes/kr/theme.conf deleted file mode 100644 index 307a1f0..0000000 --- a/docs/_themes/kr/theme.conf +++ /dev/null @@ -1,7 +0,0 @@ -[theme] -inherit = basic -stylesheet = flasky.css -pygments_style = flask_theme_support.FlaskyStyle - -[options] -touch_icon = diff --git a/docs/_themes/kr_small/layout.html b/docs/_themes/kr_small/layout.html deleted file mode 100644 index aa1716a..0000000 --- a/docs/_themes/kr_small/layout.html +++ /dev/null @@ -1,22 +0,0 @@ -{% extends "basic/layout.html" %} -{% block header %} - {{ super() }} - {% if pagename == 'index' %} -
- {% endif %} -{% endblock %} -{% block footer %} - {% if pagename == 'index' %} -
- {% endif %} -{% endblock %} -{# do not display relbars #} -{% block relbar1 %}{% endblock %} -{% block relbar2 %} - {% if theme_github_fork %} - Fork me on GitHub - {% endif %} -{% endblock %} -{% block sidebar1 %}{% endblock %} -{% block sidebar2 %}{% endblock %} diff --git a/docs/_themes/kr_small/static/flasky.css_t b/docs/_themes/kr_small/static/flasky.css_t deleted file mode 100644 index fe2141c..0000000 --- a/docs/_themes/kr_small/static/flasky.css_t +++ /dev/null @@ -1,287 +0,0 @@ -/* - * flasky.css_t - * ~~~~~~~~~~~~ - * - * Sphinx stylesheet -- flasky theme based on nature theme. - * - * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: 'Georgia', serif; - font-size: 17px; - color: #000; - background: white; - margin: 0; - padding: 0; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 40px auto 0 auto; - width: 700px; -} - -hr { - border: 1px solid #B1B4B6; -} - -div.body { - background-color: #ffffff; - color: #3E4349; - padding: 0 30px 30px 30px; -} - -img.floatingflask { - padding: 0 0 10px 10px; - float: right; -} - -div.footer { - text-align: right; - color: #888; - padding: 10px; - font-size: 14px; - width: 650px; - margin: 0 auto 40px auto; -} - -div.footer a { - color: #888; - text-decoration: underline; -} - -div.related { - line-height: 32px; - color: #888; -} - -div.related ul { - padding: 0 0 0 10px; -} - -div.related a { - color: #444; -} - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: #004B6B; - text-decoration: underline; -} - -a:hover { - color: #6D4100; - text-decoration: underline; -} - -div.body { - padding-bottom: 40px; /* saved for footer */ -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: 'Garamond', 'Georgia', serif; - font-weight: normal; - margin: 30px 0px 10px 0px; - padding: 0; -} - -{% if theme_index_logo %} -div.indexwrapper h1 { - text-indent: -999999px; - background: url({{ theme_index_logo }}) no-repeat center center; - height: {{ theme_index_logo_height }}; -} -{% endif %} - -div.body h2 { font-size: 180%; } -div.body h3 { font-size: 150%; } -div.body h4 { font-size: 130%; } -div.body h5 { font-size: 100%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: white; - padding: 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - color: #444; - background: #eaeaea; -} - -div.body p, div.body dd, div.body li { - line-height: 1.4em; -} - -div.admonition { - background: #fafafa; - margin: 20px -30px; - padding: 10px 30px; - border-top: 1px solid #ccc; - border-bottom: 1px solid #ccc; -} - -div.admonition p.admonition-title { - font-family: 'Garamond', 'Georgia', serif; - font-weight: normal; - font-size: 24px; - margin: 0 0 10px 0; - padding: 0; - line-height: 1; -} - -div.admonition p.last { - margin-bottom: 0; -} - -div.highlight{ - background-color: white; -} - -dt:target, .highlight { - background: #FAF3E8; -} - -div.note { - background-color: #eee; - border: 1px solid #ccc; -} - -div.seealso { - background-color: #ffc; - border: 1px solid #ff6; -} - -div.topic { - background-color: #eee; -} - -div.warning { - background-color: #ffe4e4; - border: 1px solid #f66; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre, tt { - font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; - font-size: 0.85em; -} - -img.screenshot { -} - -tt.descname, tt.descclassname { - font-size: 0.95em; -} - -tt.descname { - padding-right: 0.08em; -} - -img.screenshot { - -moz-box-shadow: 2px 2px 4px #eee; - -webkit-box-shadow: 2px 2px 4px #eee; - box-shadow: 2px 2px 4px #eee; -} - -table.docutils { - border: 1px solid #888; - -moz-box-shadow: 2px 2px 4px #eee; - -webkit-box-shadow: 2px 2px 4px #eee; - box-shadow: 2px 2px 4px #eee; -} - -table.docutils td, table.docutils th { - border: 1px solid #888; - padding: 0.25em 0.7em; -} - -table.field-list, table.footnote { - border: none; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -table.footnote { - margin: 15px 0; - width: 100%; - border: 1px solid #eee; -} - -table.field-list th { - padding: 0 0.8em 0 0; -} - -table.field-list td { - padding: 0; -} - -table.footnote td { - padding: 0.5em; -} - -dl { - margin: 0; - padding: 0; -} - -dl dd { - margin-left: 30px; -} - -pre { - padding: 0; - margin: 15px -30px; - padding: 8px; - line-height: 1.3em; - padding: 7px 30px; - background: #eee; - border-radius: 2px; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; -} - -dl pre { - margin-left: -60px; - padding-left: 60px; -} - -tt { - background-color: #ecf0f3; - color: #222; - /* padding: 1px 2px; */ -} - -tt.xref, a tt { - background-color: #FBFBFB; -} - -a:hover tt { - background: #EEE; -} diff --git a/docs/_themes/kr_small/theme.conf b/docs/_themes/kr_small/theme.conf deleted file mode 100644 index 542b462..0000000 --- a/docs/_themes/kr_small/theme.conf +++ /dev/null @@ -1,10 +0,0 @@ -[theme] -inherit = basic -stylesheet = flasky.css -nosidebar = true -pygments_style = flask_theme_support.FlaskyStyle - -[options] -index_logo = '' -index_logo_height = 120px -github_fork = '' diff --git a/docs/conf.py b/docs/conf.py deleted file mode 100644 index e2274f1..0000000 --- a/docs/conf.py +++ /dev/null @@ -1,294 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# -# GuessIt documentation build configuration file, created by -# sphinx-quickstart on Sun Nov 29 17:20:53 2015. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys -import os -import shlex - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ -from guessit import __version__ - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# source_suffix = ['.rst', '.md'] -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = 'GuessIt' -copyright = '2015, Remi Alvergnat' -author = 'Remi Alvergnat' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = __version__ -# The full version, including alpha/beta/rc tags. -release = __version__ - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'flask_theme_support.FlaskyStyle' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'alabaster' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -#html_extra_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -html_sidebars = { - 'index': ['sidebarintro.html', 'sourcelink.html', 'searchbox.html'], - '**': ['sidebarlogo.html', 'localtoc.html', 'relations.html', - 'sourcelink.html', 'searchbox.html'] - } - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr' -#html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = 'GuessItdoc' - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', - -# Latex figure (float) alignment -#'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, 'GuessIt.tex', 'GuessIt Documentation', - 'Remi Alvergnat', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'guessit', 'GuessIt Documentation', - [author], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, 'GuessIt', 'GuessIt Documentation', - author, 'GuessIt', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False - -sys.path.append(os.path.abspath('_themes')) -html_theme_path = ['_themes'] -html_theme = 'kr' diff --git a/docs/configuration.md b/docs/configuration.md new file mode 100644 index 0000000..0b75b95 --- /dev/null +++ b/docs/configuration.md @@ -0,0 +1,41 @@ +# Configuration files + +Guessit supports configuration through configuration files. + +Default configuration file is bundled inside guessit package from +[config/options.json][] file. + +It is possible to disable the default configuration with +`--no-default-config` option, but you have then to provide a full +configuration file based on the default one. + +Configuration files are loaded from the following paths: + +> - `~/.guessit/options.(json|yml|yaml)` +> - `~/.config/guessit/options.(json|yml|yaml)` + +It is also possible to disable those user configuration files with +`no-user-config` option. + +Additional configuration files can be included using the `-c`/`--config` +option. + +As many configuration files can be involved, they are deeply merged to +keep all values inside the effective configuration. + +# Advanced configuration + +Configuration files contains all options available through the command +line, but also an additional one named `advanced_config`. + +This advanced configuration contains all internal parameters and they +are exposed to help you tweaking guessit to better fit your needs. + +If no `advanced_config` is declared through all effective configuration +files, the default one will be used even when `--no-default-config` is +used. + +We're willing to keep it backwards compatible, but in order to enhance +Guessit, these parameters might change without prior notice. + + [config/options.json]: https://github.com/guessit-io/guessit/blob/develop/guessit/config/options.json/ \ No newline at end of file diff --git a/docs/configuration.rst b/docs/configuration.rst deleted file mode 100644 index 83f559f..0000000 --- a/docs/configuration.rst +++ /dev/null @@ -1,36 +0,0 @@ -.. _configuration: - -Configuration files -=================== -Guessit supports configuration through configuration files. - -Default configuration file is bundled inside guessit package from `config/options.json `_ file. - -It is possible to disable the default configuration with ``--no-default-config`` option, but you have then to provide a -full configuration file based on the default one. - -Configuration files are loaded from the following paths: - - * ``~/.guessit/options.(json|yml|yaml)`` - * ``~/.config/guessit/options.(json|yml|yaml)`` - -It is also possible to disable those user configuration files with ``no-user-config`` option. - -Additional configuration files can be included using the ``-c``/``--config`` option. - -As many configuration files can be involved, they are deeply merged to keep all values inside the effective -configuration. - -Advanced configuration -====================== -Configuration files contains all options available through the command line, but also an additional one named -``advanced_config``. - -This advanced configuration contains all internal parameters and they are exposed to help you tweaking guessit to -better fit your needs. - -If no ``advanced_config`` is declared through all effective configuration files, the default one will be used -even when ``--no-default-config`` is used. - -We're willing to keep it backwards compatible, but in order to enhance Guessit, these parameters might change without -prior notice. diff --git a/docs/index.rst b/docs/index.md similarity index 72% rename from docs/index.rst rename to docs/index.md index 21091fd..0e1311b 100644 --- a/docs/index.rst +++ b/docs/index.md @@ -1,33 +1,19 @@ -.. GuessIt documentation master file, created by - sphinx-quickstart on Sun Nov 29 15:18:07 2015. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - GuessIt ======= -.. image:: http://img.shields.io/pypi/v/guessit.svg - :target: https://pypi.python.org/pypi/guessit - :alt: Latest Version +[![Latest Version](http://img.shields.io/pypi/v/guessit.svg)](https://pypi.python.org/pypi/guessit) +[![LGPLv3 License](http://img.shields.io/badge/license-LGPLv3-blue.svg)]() +[![Build Status](https://img.shields.io/github/workflow/status/guessit-io/guessit/ci)](https://github.com/guessit-io/guessit/actions?query=workflow%3Aci) +[![Coveralls](http://img.shields.io/coveralls/guessit-io/guessit/master.svg)](https://coveralls.io/github/guessit-io/guessit?branch=master) -.. image:: http://img.shields.io/badge/license-LGPLv3-blue.svg - :target: https://pypi.python.org/pypi/guessit - :alt: LGPLv3 License +GuessIt is a python library that extracts as much information as +possible from a video filename. -.. image:: http://img.shields.io/travis/guessit-io/guessit.svg - :target: https://travis-ci.org/guessit-io/guessit - :alt: Build Status +It has a very powerful matcher that allows to guess properties from a +video using its filename only. This matcher works with both movies and +tv shows episodes. -.. image:: http://img.shields.io/coveralls/guessit-io/guessit.svg - :target: https://coveralls.io/github/guessit-io/guessit - :alt: Coveralls - -GuessIt is a python library that extracts as much information as possible from a video filename. - -It has a very powerful matcher that allows to guess :ref:`properties ` from a video using its filename only. -This matcher works with both movies and tv shows episodes. - -For example, GuessIt can do the following:: +For example, GuessIt can do the following: $ guessit "Treme.1x03.Right.Place,.Wrong.Time.HDTV.XviD-NoTV.avi" For: Treme.1x03.Right.Place,.Wrong.Time.HDTV.XviD-NoTV.avi @@ -37,7 +23,7 @@ For example, GuessIt can do the following:: "episode": 3, "episode_title": "Right Place, Wrong Time", "source": "HDTV", - "video_codec": "XviD", + "video_codec": "Xvid", "release_group": "NoTV", "container": "avi", "mimetype": "video/x-msvideo", @@ -49,22 +35,21 @@ Migration note In GuessIt 3, some properties and values were renamed in order to keep consistency and to be more intuitive. -To migrate from guessit ``2.x`` to guessit ``3.x``, please read the :ref:`migration page`. -To migrate from guessit ``0.x`` or ``1.x`` to guessit ``2.x``, please read the :ref:`migration page`. +To migrate from guessit `2.x` to guessit `3.x`, please read the migration page\. To migrate from guessit `0.x` or `1.x` to guessit `2.x`, please read the migration page\. Install ------- -Installing GuessIt is simple with `pip `_:: +Installing GuessIt is simple with [pip](http://www.pip-installer.org/): $ pip install guessit -You can also :ref:`install from sources `. +You can also install from sources \. Usage ----- -GuessIt can be used from command line:: +GuessIt can be used from command line: $ guessit usage: guessit [-h] [-t TYPE] [-n] [-Y] [-D] [-L ALLOWED_LANGUAGES] @@ -146,39 +131,36 @@ GuessIt can be used from command line:: -V, --values Display property values that can be guessed. --version Display the guessit version. - -It can also be used as a python module:: +It can also be used as a python module: >>> from guessit import guessit >>> guessit('Treme.1x03.Right.Place,.Wrong.Time.HDTV.XviD-NoTV.avi') # doctest: +ALLOW_UNICODE MatchesDict([('title', 'Treme'), ('season', 1), ('episode', 3), ('episode_title', 'Right Place, Wrong Time'), ('source', 'HDTV'), ('video_codec', 'XviD'), ('release_group', 'NoTV'), ('container', 'avi'), ('mimetype', 'video/x-msvideo'), ('type', 'episode')]) -``MatchesDict`` is a dict that keeps matches ordering. +`MatchesDict` is a dict that keeps matches ordering. Command line options can be given as dict or string to the second argument. Configuration ------------- -Find more about Guessit configuration at :ref:`configuration page`. - +Find more about Guessit configuration at configuration page\. REST API -------- A REST API will be available soon ... -Sources are available in a dedicated `guessit-rest repository `_. +Sources are available in a dedicated [guessit-rest repository](https://github.com/Toilal/guessit-rest). Support ------- -This project is hosted on `GitHub `_. Feel free to open an issue if you think you -have found a bug or something is missing in guessit. +This project is hosted on [GitHub](https://github.com/guessit-io/guessit). Feel free to open an issue if you think you have found a bug or something is missing in guessit. -GuessIt relies on `Rebulk `_ project for pattern and rules registration. +GuessIt relies on [Rebulk](https://github.com/Toilal/rebulk) project for pattern and rules registration. License ------- -GuessIt is licensed under the `LGPLv3 license `_. +GuessIt is licensed under the [LGPLv3 license](http://www.gnu.org/licenses/lgpl.html). diff --git a/docs/make.bat b/docs/make.bat deleted file mode 100644 index 5a146ca..0000000 --- a/docs/make.bat +++ /dev/null @@ -1,263 +0,0 @@ -@ECHO OFF - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set BUILDDIR=_build -set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . -set I18NSPHINXOPTS=%SPHINXOPTS% . -if NOT "%PAPER%" == "" ( - set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% - set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% -) - -if "%1" == "" goto help - -if "%1" == "help" ( - :help - echo.Please use `make ^` where ^ is one of - echo. html to make standalone HTML files - echo. dirhtml to make HTML files named index.html in directories - echo. singlehtml to make a single large HTML file - echo. pickle to make pickle files - echo. json to make JSON files - echo. htmlhelp to make HTML files and a HTML help project - echo. qthelp to make HTML files and a qthelp project - echo. devhelp to make HTML files and a Devhelp project - echo. epub to make an epub - echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter - echo. text to make text files - echo. man to make manual pages - echo. texinfo to make Texinfo files - echo. gettext to make PO message catalogs - echo. changes to make an overview over all changed/added/deprecated items - echo. xml to make Docutils-native XML files - echo. pseudoxml to make pseudoxml-XML files for display purposes - echo. linkcheck to check all external links for integrity - echo. doctest to run all doctests embedded in the documentation if enabled - echo. coverage to run coverage check of the documentation if enabled - goto end -) - -if "%1" == "clean" ( - for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i - del /q /s %BUILDDIR%\* - goto end -) - - -REM Check if sphinx-build is available and fallback to Python version if any -%SPHINXBUILD% 2> nul -if errorlevel 9009 goto sphinx_python -goto sphinx_ok - -:sphinx_python - -set SPHINXBUILD=python -m sphinx.__init__ -%SPHINXBUILD% 2> nul -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -:sphinx_ok - - -if "%1" == "html" ( - %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/html. - goto end -) - -if "%1" == "dirhtml" ( - %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. - goto end -) - -if "%1" == "singlehtml" ( - %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. - goto end -) - -if "%1" == "pickle" ( - %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the pickle files. - goto end -) - -if "%1" == "json" ( - %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the JSON files. - goto end -) - -if "%1" == "htmlhelp" ( - %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run HTML Help Workshop with the ^ -.hhp project file in %BUILDDIR%/htmlhelp. - goto end -) - -if "%1" == "qthelp" ( - %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run "qcollectiongenerator" with the ^ -.qhcp project file in %BUILDDIR%/qthelp, like this: - echo.^> qcollectiongenerator %BUILDDIR%\qthelp\GuessIt.qhcp - echo.To view the help file: - echo.^> assistant -collectionFile %BUILDDIR%\qthelp\GuessIt.ghc - goto end -) - -if "%1" == "devhelp" ( - %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. - goto end -) - -if "%1" == "epub" ( - %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The epub file is in %BUILDDIR%/epub. - goto end -) - -if "%1" == "latex" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "latexpdf" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - cd %BUILDDIR%/latex - make all-pdf - cd %~dp0 - echo. - echo.Build finished; the PDF files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "latexpdfja" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - cd %BUILDDIR%/latex - make all-pdf-ja - cd %~dp0 - echo. - echo.Build finished; the PDF files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "text" ( - %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The text files are in %BUILDDIR%/text. - goto end -) - -if "%1" == "man" ( - %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The manual pages are in %BUILDDIR%/man. - goto end -) - -if "%1" == "texinfo" ( - %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. - goto end -) - -if "%1" == "gettext" ( - %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The message catalogs are in %BUILDDIR%/locale. - goto end -) - -if "%1" == "changes" ( - %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes - if errorlevel 1 exit /b 1 - echo. - echo.The overview file is in %BUILDDIR%/changes. - goto end -) - -if "%1" == "linkcheck" ( - %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck - if errorlevel 1 exit /b 1 - echo. - echo.Link check complete; look for any errors in the above output ^ -or in %BUILDDIR%/linkcheck/output.txt. - goto end -) - -if "%1" == "doctest" ( - %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest - if errorlevel 1 exit /b 1 - echo. - echo.Testing of doctests in the sources finished, look at the ^ -results in %BUILDDIR%/doctest/output.txt. - goto end -) - -if "%1" == "coverage" ( - %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage - if errorlevel 1 exit /b 1 - echo. - echo.Testing of coverage in the sources finished, look at the ^ -results in %BUILDDIR%/coverage/python.txt. - goto end -) - -if "%1" == "xml" ( - %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The XML files are in %BUILDDIR%/xml. - goto end -) - -if "%1" == "pseudoxml" ( - %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. - goto end -) - -:end diff --git a/docs/migration.md b/docs/migration.md new file mode 100644 index 0000000..fc07f41 --- /dev/null +++ b/docs/migration.md @@ -0,0 +1,158 @@ +Migration +========= + +Guessit 2 has been rewritten from scratch. You can find in this file all information required to perform a migration from previous version `0.x` or `1.x`. + +API +--- + +`guess_video_info`, `guess_movie_info` and `guess_episode_info` have been removed in favor of a unique function `guessit`. + +Example: + + >>> from guessit import guessit + >>> guessit('Treme.1x03.Right.Place,.Wrong.Time.HDTV.XviD-NoTV.avi') + MatchesDict([('title', 'Treme'), ('season', 1), ('episode', 3), ('episode_title', 'Right Place, Wrong Time'), ('format', 'HDTV'), ('video_codec', 'XviD'), ('release_group', 'NoTV'), ('container', 'avi'), ('mimetype', 'video/x-msvideo'), ('type', 'episode')]) + +`MatchesDict` is a dict that keeps matches ordering. + +Command line options can be given as dict or string to the second argument. + +Properties +---------- + +Some properties have been renamed. + +- `series` is now `title`. +- `title` is now `episode_title` (for `episode` `type` only). +- `episodeNumber` is now `episode`. +- `bonusNumber` is now `bonus` +- `filmNumber` is now `film` +- `cdNumber` is now `cd ` and `cdNumberTotal` is now `cd_count` +- `idNumber` is now `uuid` + +`episodeList` and `partList` have been removed. `episode_number` and `part` properties that can now contains an `int` or a `list[int]`. + +All info `type`, like `seriesinfo` and `movieinfo`. You can check directly `nfo` value in `container` property. + +All `camelCase` properties have been renamed to `underscore_case`. + +- `releaseGroup` is now `release_group` +- `episodeCount` is now `episode_count` +- `episodeDetails` is now `episode_details` +- `episodeFormat` is now `episode_format` +- `screenSize` is now `screen_size` +- `videoCodec` is now `video_codec` +- `videoProfile` is now `video_profile` +- `videoApi` is now `video_api` +- `audioChannels` is now `audio_channels` +- `audioCodec` is now `audio_codec` +- `audioProfile` is now `audio_profile` +- `subtitleLanguage` is now `subtitle_language` +- `bonusTitle` is now `bonus_title` +- `properCount` is now `proper_count` + +Options +------- + +Some options have been removed. + +- `-X DISABLED_TRANSFORMERS`, `-s, --transformers` + + There's no transformer anymore. + +- `-S EXPECTED_SERIES` + + As `series` was renamed to `title`, use `-T EXPECTED_TITLE` instead. + +- `-G EXPECTED_GROUP` + + GuessIt is now better to guess release group, so this option has been removed. + +- `-d, --demo` + + Probably not that useful. + +- `-i INFO, --info INFO` + + Features related to this option have been removed. + +- `-c, --split-camel`, `-u, --unidentified`, `-b, --bug` + + Will be back soon... (work in progress) + +Other GuessIt `1.x` options have been kept. + +Output +------ + +Output produced by `guessit` api function is now an instance of [OrderedDict](https://docs.python.org/2/library/collections.html#collections.OrderedDict). Property values are automatically ordered based on filename, and you can still use this output as a default python `dict`. + +If multiple values are available for a property, value in the dict will be a `list` instance. + +`country` 2-letter code is not added to the title anymore. As `country` is added to the returned guess dict, it's up to the user to edit the guessed title. + +Advanced display option (`-a, --advanced`) output is also changed. It now list `Match` objects from [Rebulk](https://github.com/Toilal/rebulk), and may display duplicates that would have been merged in standard output.: + + $ guessit "Treme.1x03.Right.Place,.Wrong.Time.HDTV.XviD-NoTV.avi" -a + For: Treme.1x03.Right.Place,.Wrong.Time.HDTV.XviD-NoTV.avi + GuessIt found: { + "title": { + "value": "Treme", + "raw": "Treme.", + "start": 0, + "end": 6 + }, + "season": { + "value": 1, + "raw": "1", + "start": 6, + "end": 7 + }, + "episode": { + "value": 3, + "raw": "03", + "start": 8, + "end": 10 + }, + "episode_title": { + "value": "Right Place, Wrong Time", + "raw": ".Right.Place,.Wrong.Time.", + "start": 10, + "end": 35 + }, + "format": { + "value": "HDTV", + "raw": "HDTV", + "start": 35, + "end": 39 + }, + "video_codec": { + "value": "XviD", + "raw": "XviD", + "start": 40, + "end": 44 + }, + "release_group": { + "value": "NoTV", + "raw": "-NoTV", + "start": 44, + "end": 49 + }, + "container": { + "value": "avi", + "raw": ".avi", + "start": 49, + "end": 53 + }, + "mimetype": { + "value": "video/x-msvideo", + "start": 53, + "end": 53 + }, + "type": { + "value": "episode", + "start": 53, + "end": 53 + } + } diff --git a/docs/migration.rst b/docs/migration.rst deleted file mode 100644 index 2d1f818..0000000 --- a/docs/migration.rst +++ /dev/null @@ -1,164 +0,0 @@ -.. _migration: - -Migration -========= -Guessit 2 has been rewritten from scratch. You can find in this file all information required to perform a -migration from previous version ``0.x`` or ``1.x``. - -API ----- -``guess_video_info``, ``guess_movie_info`` and ``guess_episode_info`` have been removed in favor of a unique function -``guessit``. - -Example:: - - >>> from guessit import guessit - >>> guessit('Treme.1x03.Right.Place,.Wrong.Time.HDTV.XviD-NoTV.avi') - MatchesDict([('title', 'Treme'), ('season', 1), ('episode', 3), ('episode_title', 'Right Place, Wrong Time'), ('format', 'HDTV'), ('video_codec', 'XviD'), ('release_group', 'NoTV'), ('container', 'avi'), ('mimetype', 'video/x-msvideo'), ('type', 'episode')]) - -``MatchesDict`` is a dict that keeps matches ordering. - -Command line options can be given as dict or string to the second argument. - -Properties ----------- -Some properties have been renamed. - -- ``series`` is now ``title``. -- ``title`` is now ``episode_title`` (for ``episode`` ``type`` only). -- ``episodeNumber`` is now ``episode``. -- ``bonusNumber`` is now ``bonus`` -- ``filmNumber`` is now ``film`` -- ``cdNumber`` is now ``cd `` and ``cdNumberTotal`` is now ``cd_count`` -- ``idNumber`` is now ``uuid`` - -``episodeList`` and ``partList`` have been removed. ``episode_number`` and ``part`` properties that can now contains an -``int`` or a ``list[int]``. - -All info ``type``, like ``seriesinfo`` and ``movieinfo``. You can check directly ``nfo`` value in ``container`` -property. - -All ``camelCase`` properties have been renamed to ``underscore_case``. - -- ``releaseGroup`` is now ``release_group`` -- ``episodeCount`` is now ``episode_count`` -- ``episodeDetails`` is now ``episode_details`` -- ``episodeFormat`` is now ``episode_format`` -- ``screenSize`` is now ``screen_size`` -- ``videoCodec`` is now ``video_codec`` -- ``videoProfile`` is now ``video_profile`` -- ``videoApi`` is now ``video_api`` -- ``audioChannels`` is now ``audio_channels`` -- ``audioCodec`` is now ``audio_codec`` -- ``audioProfile`` is now ``audio_profile`` -- ``subtitleLanguage`` is now ``subtitle_language`` -- ``bonusTitle`` is now ``bonus_title`` -- ``properCount`` is now ``proper_count`` - -Options -------- -Some options have been removed. - -- ``-X DISABLED_TRANSFORMERS``, ``-s, --transformers`` - - There's no transformer anymore. - -- ``-S EXPECTED_SERIES`` - - As ``series`` was renamed to ``title``, use ``-T EXPECTED_TITLE`` instead. - -- ``-G EXPECTED_GROUP`` - - GuessIt is now better to guess release group, so this option has been removed. - -- ``-d, --demo`` - - Probably not that useful. - -- ``-i INFO, --info INFO`` - - Features related to this option have been removed. - -- ``-c, --split-camel``, ``-u, --unidentified``, ``-b, --bug`` - - Will be back soon... (work in progress) - -Other GuessIt ``1.x`` options have been kept. - -Output ------- -Output produced by ``guessit`` api function is now an instance of -`OrderedDict `_. Property values are -automatically ordered based on filename, and you can still use this output as a default python ``dict``. - -If multiple values are available for a property, value in the dict will be a ``list`` instance. - -``country`` 2-letter code is not added to the title anymore. As ``country`` is added to the returned guess dict, -it's up to the user to edit the guessed title. - -Advanced display option (``-a, --advanced``) output is also changed. It now list ``Match`` objects from -`Rebulk `_, and may display duplicates that would have been merged in standard -output.:: - - $ guessit "Treme.1x03.Right.Place,.Wrong.Time.HDTV.XviD-NoTV.avi" -a - For: Treme.1x03.Right.Place,.Wrong.Time.HDTV.XviD-NoTV.avi - GuessIt found: { - "title": { - "value": "Treme", - "raw": "Treme.", - "start": 0, - "end": 6 - }, - "season": { - "value": 1, - "raw": "1", - "start": 6, - "end": 7 - }, - "episode": { - "value": 3, - "raw": "03", - "start": 8, - "end": 10 - }, - "episode_title": { - "value": "Right Place, Wrong Time", - "raw": ".Right.Place,.Wrong.Time.", - "start": 10, - "end": 35 - }, - "format": { - "value": "HDTV", - "raw": "HDTV", - "start": 35, - "end": 39 - }, - "video_codec": { - "value": "XviD", - "raw": "XviD", - "start": 40, - "end": 44 - }, - "release_group": { - "value": "NoTV", - "raw": "-NoTV", - "start": 44, - "end": 49 - }, - "container": { - "value": "avi", - "raw": ".avi", - "start": 49, - "end": 53 - }, - "mimetype": { - "value": "video/x-msvideo", - "start": 53, - "end": 53 - }, - "type": { - "value": "episode", - "start": 53, - "end": 53 - } - } diff --git a/docs/migration2to3.md b/docs/migration2to3.md new file mode 100644 index 0000000..119f95f --- /dev/null +++ b/docs/migration2to3.md @@ -0,0 +1,124 @@ +Migration +========= + +Guessit 3 has introduced breaking changes from previous versions. You can find in this file all information required to perform a migration from previous version `2.x`. + +API +--- + +No changes. + +Properties +---------- + +Some properties have been renamed. + +- `format` is now `source`. + +Values +------ + +The major changes in GuessIt 3 are around the values. Values were renamed in order to keep consistency and to be more intuitive. Acronyms are uppercase (e.g.: `HDTV`). Names follow the official name (e.g.: `Blu-ray`). Words have only the first letter capitalized (e.g.: `Camera`) except prepositions (e.g.: `on`) which are all lowercase. + +The following values were changed: + +### `source` (former `format` property) + +- `Cam` is now `Camera` or `HD Camera` +- `Telesync` is now `Telesync` or `HD Telesync` +- `PPV` is now `Pay-per-view` +- `DVB` is now `Digital TV` +- `VOD` is now `Video on Demand` +- `WEBRip` is now `Web` with additional property `other: Rip` +- `WEB-DL` is now `Web` +- `AHDTV` is now `Analog HDTV` +- `UHDTV` is now `Ultra HDTV` +- `HDTC` is now `HD Telecine` + +### `screen_size` + +- `360i` was added. +- `480i` was added. +- `576i` was added. +- `900i` was added. +- `4K` is now `2160p` +- `4320p` was added. + +### `video_codec` + +- `h264` is now `H.264` +- `h265` is now `H.265` +- `Mpeg2` is now `MPEG-2` +- `Real` is now `RealVideo` +- `XviD` is now `Xvid` + +### `video_profile` + +- `BP` is now `Baseline`. +- `HP` is now `High`. +- `XP` is now `Extended`. +- `MP` is now `Main`. +- `Hi422P` is now `High 4:2:2`. +- `Hi444PP` is now `High 4:4:4 Predictive`. +- `High 10` was added. +- `8bit` was removed. `8bit` is detected as `color_depth: 8-bit` +- `10bit` was removed. `10bit` is detected as `color_depth: 10-bit` + +### `audio_codec` + +- `DTS-HD` was added. +- `AC3` is now `Dolby Digital` +- `EAC3` is now `Dolby Digital Plus` +- `TrueHD` is now `Dolby TrueHD` +- `DolbyAtmos` is now `Dolby Atmos`. + +### `audio_profile` + +- `HE` is now `High Efficiency`. +- `LC` is now `Low Complexity`. +- `HQ` is now `High Quality`. +- `HDMA` is now `Master Audio`. + +### `edition` + +- `Collector Edition` is now `Collector` +- `Special Edition` is now `Special` +- `Criterion Edition` is now `Criterion` +- `Deluxe Edition` is now `Deluxe` +- `Limited Edition` is now `Limited` +- `Theatrical Edition` is now `Theatrical` +- `Director's Definitive Cut` was added. + +### `episode_details` + +- `Oav` and `Ova` were removed. They are now `other: Original Animated Video` +- `Omake` is now `Extras` +- `Final` was added. + +### `other` + +- `Rip` was added. E.g.: `DVDRip` will output `other: Rip` +- `DDC` was removed. `DDC` is now `edition: Director's Definitive Cut` +- `CC` was removed. `CC` is now `edition: Criterion` +- `FINAL` was removed. `FINAL` is now `episode_details: Final` +- `Original Animated Video` was added. +- `OV` is now `Original Video` +- `AudioFix` is now `Audio Fixed` +- `SyncFix` is now `Sync Fixed` +- `DualAudio` is now `Dual Audio` +- `Fansub` is now `Fan Subtitled` +- `Fastsub` is now `Fast Subtitled` +- `FullHD` is now `Full HD` +- `UltraHD` is now `Ultra HD` +- `mHD` and `HDLight` are now `Micro HD` +- `HQ` is now `High Quality` +- `HR` is now `High Resolution` +- `LD` is now `Line Dubbed` +- `MD` is now `Mic Dubbed` +- `Low Definition` was added. +- `LiNE` is now `Line Audio` +- `R5` is now `Region 5` +- `Region C` was added. +- `ReEncoded` is now `Reencoded` +- `WideScreen` is now `Widescreen` + diff --git a/docs/migration2to3.rst b/docs/migration2to3.rst deleted file mode 100644 index 8c8d8f9..0000000 --- a/docs/migration2to3.rst +++ /dev/null @@ -1,125 +0,0 @@ -.. _migration2to3: - -Migration -========= -Guessit 3 has introduced breaking changes from previous versions. You can find in this file all information required to -perform a migration from previous version ``2.x``. - -API ---- -No changes. - -Properties ----------- -Some properties have been renamed. - -- ``format`` is now ``source``. - - -Values ------- -The major changes in GuessIt 3 are around the values. Values were renamed in order to keep consistency and to be more -intuitive. Acronyms are uppercase (e.g.: ``HDTV``). Names follow the official name (e.g.: ``Blu-ray``). Words have only -the first letter capitalized (e.g.: ``Camera``) except prepositions (e.g.: ``on``) which are all lowercase. - -The following values were changed: - -``source`` (former ``format`` property) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- ``Cam`` is now ``Camera`` or ``HD Camera`` -- ``Telesync`` is now ``Telesync`` or ``HD Telesync`` -- ``PPV`` is now ``Pay-per-view`` -- ``DVB`` is now ``Digital TV`` -- ``VOD`` is now ``Video on Demand`` -- ``WEBRip`` is now ``Web`` with additional property ``other: Rip`` -- ``WEB-DL`` is now ``Web`` -- ``AHDTV`` is now ``Analog HDTV`` -- ``UHDTV`` is now ``Ultra HDTV`` -- ``HDTC`` is now ``HD Telecine`` - -``screen_size`` -^^^^^^^^^^^^^^^ -- ``360i`` was added. -- ``480i`` was added. -- ``576i`` was added. -- ``900i`` was added. -- ``4K`` is now ``2160p`` -- ``4320p`` was added. - -``video_codec`` -^^^^^^^^^^^^^^^ -- ``h264`` is now ``H.264`` -- ``h265`` is now ``H.265`` -- ``Mpeg2`` is now ``MPEG-2`` -- ``Real`` is now ``RealVideo`` -- ``XviD`` is now ``Xvid`` - -``video_profile`` -^^^^^^^^^^^^^^^^^ -- ``BP`` is now ``Baseline``. -- ``HP`` is now ``High``. -- ``XP`` is now ``Extended``. -- ``MP`` is now ``Main``. -- ``Hi422P`` is now ``High 4:2:2``. -- ``Hi444PP`` is now ``High 4:4:4 Predictive``. -- ``High 10`` was added. -- ``8bit`` was removed. ``8bit`` is detected as ``color_depth: 8-bit`` -- ``10bit`` was removed. ``10bit`` is detected as ``color_depth: 10-bit`` - -``audio_codec`` -^^^^^^^^^^^^^^^ -- ``DTS-HD`` was added. -- ``AC3`` is now ``Dolby Digital`` -- ``EAC3`` is now ``Dolby Digital Plus`` -- ``TrueHD`` is now ``Dolby TrueHD`` -- ``DolbyAtmos`` is now ``Dolby Atmos``. - -``audio_profile`` -^^^^^^^^^^^^^^^^^ -- ``HE`` is now ``High Efficiency``. -- ``LC`` is now ``Low Complexity``. -- ``HQ`` is now ``High Quality``. -- ``HDMA`` is now ``Master Audio``. - -``edition`` -^^^^^^^^^^^ -- ``Collector Edition`` is now ``Collector`` -- ``Special Edition`` is now ``Special`` -- ``Criterion Edition`` is now ``Criterion`` -- ``Deluxe Edition`` is now ``Deluxe`` -- ``Limited Edition`` is now ``Limited`` -- ``Theatrical Edition`` is now ``Theatrical`` -- ``Director's Definitive Cut`` was added. - -``episode_details`` -^^^^^^^^^^^^^^^^^^^ -- ``Oav`` and ``Ova`` were removed. They are now ``other: Original Animated Video`` -- ``Omake`` is now ``Extras`` -- ``Final`` was added. - -``other`` -^^^^^^^^^ -- ``Rip`` was added. E.g.: ``DVDRip`` will output ``other: Rip`` -- ``DDC`` was removed. ``DDC`` is now ``edition: Director's Definitive Cut`` -- ``CC`` was removed. ``CC`` is now ``edition: Criterion`` -- ``FINAL`` was removed. ``FINAL`` is now ``episode_details: Final`` -- ``Original Animated Video`` was added. -- ``OV`` is now ``Original Video`` -- ``AudioFix`` is now ``Audio Fixed`` -- ``SyncFix`` is now ``Sync Fixed`` -- ``DualAudio`` is now ``Dual Audio`` -- ``Fansub`` is now ``Fan Subtitled`` -- ``Fastsub`` is now ``Fast Subtitled`` -- ``FullHD`` is now ``Full HD`` -- ``UltraHD`` is now ``Ultra HD`` -- ``mHD`` and ``HDLight`` are now ``Micro HD`` -- ``HQ`` is now ``High Quality`` -- ``HR`` is now ``High Resolution`` -- ``LD`` is now ``Line Dubbed`` -- ``MD`` is now ``Mic Dubbed`` -- ``Low Definition`` was added. -- ``LiNE`` is now ``Line Audio`` -- ``R5`` is now ``Region 5`` -- ``Region C`` was added. -- ``ReEncoded`` is now ``Reencoded`` -- ``WideScreen`` is now ``Widescreen`` diff --git a/docs/properties.md b/docs/properties.md new file mode 100644 index 0000000..4a6bb3f --- /dev/null +++ b/docs/properties.md @@ -0,0 +1,247 @@ +Properties +========== + +Guessed values are cleaned up and given in a readable format which may not match exactly the raw filename. + +So, for instance, + +- `DVDSCR` will be guessed as `source` = `DVD` + `other` = `Screener` +- `1920x1080` will be guessed as `screen_size` = `1080p` +- `DD5.1` will be guessed as `audio_codec` = `Dolby Digital` + `audio_channels` = `5.1` + +Main properties +--------------- + +- **type** + + Type of the file. + + - `episode`, `movie` +- **title** + + Title of movie or episode. + +- **alternative\_title** + + Other titles found for movie. + +- **container** + + Container of the file. + + - `3g2`, `3gp`, `3gp2`, `asf`, `ass`, `avi`, `divx`, `flv`, `idx`, `iso`, `m4v`, `mk2`, `mk3d`, `mkv`, `mka`, `mov`, `mp4`, `mp4a`, `mpeg`, `mpg`, `nfo`, `nzb`, `ogg`, `ogm`, `ogv`, `qt`, `ra`, `ram`, `rm`, `srt`, `ssa`, `sub`, `torrent`, `ts`, `vob`, `wav`, `webm`, `wma`, `wmv` +- **mimetype** + + Mime type of the related container. Guessed values may vary based on OS native support of mime type. + +- **date** + + Date found in filename. + +- **year** + + Year of movie (or episode). + +- **release\_group** + + Name of (non)scene group that released the file. + +- **website** + + Name of website contained in the filename. + +- **streaming\_service** + + Name of the streaming service. + + - `A&E`, `ABC`, `ABC Australia`, `Adult Swim`, `Al Jazeera English`, `AMC`, `America's Test Kitchen`, `Amazon Prime`, `Animal Planet`, `AnimeLab`, `AOL`, `ARD`, `BBC iPlayer`, `BravoTV`, `Canal+`, `Cartoon Network`, `CBC`, `CBS`, `Channel 4`, `CHRGD`, `Cinemax`, `CNBC`, `Comedy Central`, `Comedians in Cars Getting Coffee`, `Country Music Television`, `Crackle`, `Crunchy Roll`, `CSpan`, `CTV`, `CuriosityStream`, `CWSeed`, `Daisuki`, `DC Universe`, `Deadhouse Films`, `DramaFever`, `Digiturk Diledigin Yerde`, `Discovery`, `DIY Network`, `Disney`, `Doc Club`, `DPlay`, `E!`, `ePix`, `El Trece`, `ESPN`, `Esquire`, `Family`, `Family Jr`, `Food Network`, `Fox`, `Freeform`, `FYI Network`, `Global`, `GloboSat Play`, `Hallmark`, `HBO Go`, `HGTV`, `History`, `Hulu`, `Investigation Discovery`, `IFC`, `iTunes`, `ITV`, `Knowledge Network`, `Lifetime`, `Motor Trend OnDemand`, `MBC`, `MSNBC`, `MTV`, `National Geographic`, `NBA TV`, `NBC`, `Netflix`, `NFL`, `NFL Now`, `NHL GameCenter`, `Nickelodeon`, `Norsk Rikskringkasting`, `OnDemandKorea`, `PBS`, `PBS Kids`, `Playstation Network`, `Pluzz`, `RTE One`, `SBS (AU)`, `SeeSo`, `Shomi`, `Spike`, `Spike TV`, `Sportsnet`, `Sprout`, `Stan`, `Starz`, `Sveriges Television`, `SwearNet`, `Syfy`, `TBS`, `TFou`, `The CW`, `TLC`, `TubiTV`, `TV3 Ireland`, `TV4 Sweeden`, `TVING`, `TV Land`, `UFC`, `UKTV`, `Univision`, `USA Network`, `Velocity`, `VH1`, `Viceland`, `Viki`, `Vimeo`, `VRV`, `W Network`, `WatchMe`, `WWE Network`, `Xbox Video`, `Yahoo`, `YouTube Red`, `ZDF` + +Episode properties +------------------ + +- **season** + + Season number. (Can be a list if several are found) + +- **episode** + + Episode number. (Can be a list if several are found) + +- **disc** + + Disc number. (Can be a list if several are found) + +- **episode\_count** + + Total number of episodes. + +- **season\_count** + + Total number of seasons. + +- **episode\_details** + + Some details about the episode. + + - `Final`, `Pilot`, `Special`, `Unaired` +- **episode\_format** + + Episode format of the series. + + - `Minisode` +- **part** + + Part number of the video. (Can be a list if several are found) + +- **version** + + Version of the episode. + + - In anime fansub scene, new versions are released with tag `v[0-9]`. + +Video properties +---------------- + +- **source** + + Source of the release + + - `Analog HDTV`, `Blu-ray`, `Camera`, `Digital Master`, `Digital TV`, `DVD`, `HD Camera`, `HD Telecine`, `HD Telesync`, `HD-DVD`, `HDTV`, `Pay-per-view`, `Satellite`, `Telecine`, `Telesync`, `TV`, `Ultra HD Blu-ray`, `Ultra HDTV`, `VHS`, `Video on Demand`, `Web`, `Workprint` +- **screen\_size** + + Resolution of video. + + - `x`, `360i`, `360p`, `368p`, `480i`, `480p`, `540p`, `576i`, `576p`, `720p`, `900i`, `900p`, `1080i`, `1080p`, `1440p`, `2160p`, `4320p` +- **aspect\_ratio** + + Aspect ratio of video. Calculated using width and height from `screen_size` + +- **video\_codec** + + Codec used for video. + + - `DivX`, `H.263`, `H.264`, `H.265`, `MPEG-2`, `RealVideo`, `VP7`, `VP8`, `VP9`,`Xvid` +- **video\_profile** + + Codec profile used for video. + + - `Baseline`, `High`, `High 10`, `High 4:2:2`, `High 4:4:4 Predictive`, `Main`, `Extended`, `Scalable Video Coding`, `Advanced Video Codec High Definition`, `High Efficiency Video Coding` + +- **color\_depth** + + Bit depth used for video. + - `8-bit`, `10-bit`, `12-bit` +- **video\_api** + + API used for the video. + + - `DXVA` +- **video\_bit\_rate** + + Video bit rate (Mbps). Examples: `25Mbps` (``), `40Mbps` (``). + + - `[]` (object has `magnitude` and `units`) +- **frame\_rate** + + Video frame rate (frames per second). Examples: `25fps` (``), `60fps` (``). + + - `[]` (object has `magnitude` and `units`) + +Audio properties +---------------- + +- **audio\_channels** + + Number of channels for audio. + + - `1.0`, `2.0`, `5.1`, `7.1` +- **audio\_codec** + + Codec used for audio. + + - `AAC`, `Dolby Atmos`, `Dolby Digital`, `Dolby Digital Plus`, `Dolby TrueHD`, `DTS`, `FLAC`, `LPCM`, `MP2`, `MP3`, `Opus`, `PCM`, `Vorbis` +- **audio\_profile** + + The codec profile used for audio. + + - `Extended Surround`, `EX`, `High Efficiency`, `High Quality`, `High Resolution Audio`, `Low Complexity`, `Master Audio` +- **audio\_bit\_rate** + + Audio bit rate (Kbps, Mbps). Examples: `448Kbps` (``), `1.5Mbps` (``). + + - `[]` (object has `magnitude` and `units`) + +Localization properties +----------------------- + +- **country** + + Country(ies) of content. Often found in series, `Shameless (US)` for instance. + + - `[]` (This class equals name and iso code) +- **language** + + Language(s) of the audio soundtrack. + + - `[]` (This class equals name and iso code) +- **subtitle\_language** + + Language(s) of the subtitles. + + - `[]` (This class equals name and iso code) + +Other properties +---------------- + +- **bonus** + + Bonus number. + +- **bonus\_title** + + Bonus title. + +- **cd** + + CD number. + +- **cd\_count** + + Total count of CD. + +- **crc32** + + CRC32 of the file. + +- **uuid** + + Volume identifier (UUID). + +- **size** + + Size (MB, GB, TB). Examples: `1.2GB` (``), `430MB` (``). + + - `[]` (object has `magnitude` and `units`) +- **edition** + + Edition of the movie. + + - `Alternative Cut`, `Collector`, `Criterion`, `Deluxe`, `Director's Cut`, `Director's Definitive Cut`, `Extended`, `Fan`, `Festival`, `IMAX`, `Remastered`, `Special`, `Limited`, `Theatrical`, `Ultimate`, `Uncensored`, `Uncut`, `Unrated` +- **film** + + Film number of this movie. + +- **film\_title** + + Film title of this movie. + +- **film\_series** + + Film series of this movie. + +- **other** + + Other property will appear under this property. + + - `3D`, `Audio Fixed`, `Bonus`, `BT.2020`, `Classic`, `Colorized`, `Complete`, `Converted`, `Documentary`, `Dolby Vision`, `Dual Audio`, `East Coast Feed`, `Extras`, `Fan Subtitled`, `Fast Subtitled`, `Full HD`, `Hardcoded Subtitles`, `HD`, `HDR10`, `High Frame Rate`, `Variable Frame Rate`, `High Quality`, `High Resolution`, `Internal`, `Line Dubbed`, `Line Audio`, `Mic Dubbed`, `Micro HD`, `Mux`, `NTSC`, `Obfuscated`, `Open Matte`, `Original Aspect Ratio`, `Original Video`, `PAL`, `Preair`, `Proof`, `Proper`, `PS Vita`, `Read NFO`, `Region 5`, `Region C`, `Reencoded`, `Remux`, `Repost`, `Retail`, `Rip`, `Sample`, `Screener`, `SECAM`, `Standard Dynamic Range`, `Straight to Video`, `Sync Fixed`, `Trailer`, `Ultra HD`, `Upscaled`, `West Coast Feed`, `Widescreen`, `XXX` + diff --git a/docs/properties.rst b/docs/properties.rst deleted file mode 100644 index 42b119c..0000000 --- a/docs/properties.rst +++ /dev/null @@ -1,347 +0,0 @@ -.. _properties: - -Properties -========== - -Guessed values are cleaned up and given in a readable format -which may not match exactly the raw filename. - -So, for instance, - -- ``DVDSCR`` will be guessed as ``source`` = ``DVD`` + ``other`` = ``Screener`` -- ``1920x1080`` will be guessed as ``screen_size`` = ``1080p`` -- ``DD5.1`` will be guessed as ``audio_codec`` = ``Dolby Digital`` + ``audio_channels`` = ``5.1`` - - -Main properties ---------------- - -- **type** - - Type of the file. - - - ``episode``, ``movie`` - - -- **title** - - Title of movie or episode. - - -- **alternative_title** - - Other titles found for movie. - - -- **container** - - Container of the file. - - - ``3g2``, ``3gp``, ``3gp2``, ``asf``, ``ass``, ``avi``, ``divx``, ``flv``, ``idx``, ``iso``, ``m4v``, ``mk2``, - ``mk3d``, ``mkv``, ``mka``, ``mov``, ``mp4``, ``mp4a``, ``mpeg``, ``mpg``, ``nfo``, ``nzb``, ``ogg``, ``ogm``, - ``ogv``, ``qt``, ``ra``, ``ram``, ``rm``, ``srt``, ``ssa``, ``sub``, ``torrent``, ``ts``, ``vob``, ``wav``, - ``webm``, ``wma``, ``wmv`` - - -- **mimetype** - - Mime type of the related container. Guessed values may vary based on OS native support of mime type. - - -- **date** - - Date found in filename. - - -- **year** - - Year of movie (or episode). - - -- **release_group** - - Name of (non)scene group that released the file. - - -- **website** - - Name of website contained in the filename. - - -- **streaming_service** - - Name of the streaming service. - - - ``A&E``, ``ABC``, ``ABC Australia``, ``Adult Swim``, ``Al Jazeera English``, ``AMC``, ``America's Test Kitchen``, - ``Amazon Prime``, ``Animal Planet``, ``AnimeLab``, ``AOL``, ``ARD``, ``BBC iPlayer``, ``BravoTV``, ``Canal+``, - ``Cartoon Network``, ``CBC``, ``CBS``, ``Channel 4``, ``CHRGD``, ``Cinemax``, ``CNBC``, ``Comedy Central``, - ``Comedians in Cars Getting Coffee``, ``Country Music Television``, ``Crackle``, ``Crunchy Roll``, ``CSpan``, - ``CTV``, ``CuriosityStream``, ``CWSeed``, ``Daisuki``, ``DC Universe``, ``Deadhouse Films``, ``DramaFever``, - ``Digiturk Diledigin Yerde``, ``Discovery``, ``DIY Network``, ``Disney``, ``Doc Club``, ``DPlay``, ``E!``, ``ePix``, - ``El Trece``, ``ESPN``, ``Esquire``, ``Family``, ``Family Jr``, ``Food Network``, ``Fox``, ``Freeform``, - ``FYI Network``, ``Global``, ``GloboSat Play``, ``Hallmark``, ``HBO Go``, ``HGTV``, ``History``, ``Hulu``, - ``Investigation Discovery``, ``IFC``, ``iTunes``, ``ITV``, ``Knowledge Network``, ``Lifetime``, - ``Motor Trend OnDemand``, ``MBC``, ``MSNBC``, ``MTV``, ``National Geographic``, ``NBA TV``, ``NBC``, ``Netflix``, ``NFL``, - ``NFL Now``, ``NHL GameCenter``, ``Nickelodeon``, ``Norsk Rikskringkasting``, ``OnDemandKorea``, ``PBS``, ``PBS Kids``, - ``Playstation Network``, ``Pluzz``, ``RTE One``, ``SBS (AU)``, ``SeeSo``, ``Shomi``, ``Spike``, ``Spike TV``, - ``Sportsnet``, ``Sprout``, ``Stan``, ``Starz``, ``Sveriges Television``, ``SwearNet``, ``Syfy``, ``TBS``, ``TFou``, - ``The CW``, ``TLC``, ``TubiTV``, ``TV3 Ireland``, ``TV4 Sweeden``, ``TVING``, ``TV Land``, ``UFC``, ``UKTV``, ``Univision``, - ``USA Network``, ``Velocity``, ``VH1``, ``Viceland``, ``Viki``, ``Vimeo``, ``VRV``, ``W Network``, ``WatchMe``, - ``WWE Network``, ``Xbox Video``, ``Yahoo``, ``YouTube Red``, ``ZDF`` - - -Episode properties ------------------- - -- **season** - - Season number. (Can be a list if several are found) - - -- **episode** - - Episode number. (Can be a list if several are found) - - -- **disc** - - Disc number. (Can be a list if several are found) - - -- **episode_count** - - Total number of episodes. - - -- **season_count** - - Total number of seasons. - - -- **episode_details** - - Some details about the episode. - - - ``Final``, ``Pilot``, ``Special``, ``Unaired`` - - -- **episode_format** - - Episode format of the series. - - - ``Minisode`` - - -- **part** - - Part number of the video. (Can be a list if several are found) - - -- **version** - - Version of the episode. - - - In anime fansub scene, new versions are released with tag ``v[0-9]``. - - -Video properties ----------------- - -- **source** - - Source of the release - - - ``Analog HDTV``, ``Blu-ray``, ``Camera``, ``Digital Master``, ``Digital TV``, ``DVD``, ``HD Camera``, - ``HD Telecine``, ``HD Telesync``, ``HD-DVD``, ``HDTV``, ``Pay-per-view``, ``Satellite``, ``Telecine``, ``Telesync``, - ``TV``, ``Ultra HD Blu-ray``, ``Ultra HDTV``, ``VHS``, ``Video on Demand``, ``Web``, ``Workprint`` - - -- **screen_size** - - Resolution of video. - - - ``x``, ``360i``, ``360p``, ``368p``, ``480i``, ``480p``, ``540p``, ``576i``, ``576p``, ``720p``, - ``900i``, ``900p``, ``1080i``, ``1080p``, ``1440p``, ``2160p``, ``4320p`` - - -- **aspect_ratio** - - Aspect ratio of video. Calculated using width and height from ``screen_size`` - - -- **video_codec** - - Codec used for video. - - - ``DivX``, ``H.263``, ``H.264``, ``H.265``, ``MPEG-2``, ``RealVideo``, ``VP7``, ``VP8``, ``VP9``,``Xvid`` - - -- **video_profile** - - Codec profile used for video. - - - ``Baseline``, ``High``, ``High 10``, ``High 4:2:2``, ``High 4:4:4 Predictive``, ``Main``, ``Extended``, - ``Scalable Video Coding``, ``Advanced Video Codec High Definition``, ``High Efficiency Video Coding`` - -- **color_depth** - - Bit depth used for video. - - ``8-bit``, ``10-bit``, ``12-bit`` - - -- **video_api** - - API used for the video. - - - ``DXVA`` - - -- **video_bit_rate** - - Video bit rate (Mbps). Examples: ``25Mbps`` (````), ``40Mbps`` (````). - - - ``[]`` (object has ``magnitude`` and ``units``) - - -- **frame_rate** - - Video frame rate (frames per second). - Examples: ``25fps`` (````), ``60fps`` (````). - - - ``[]`` (object has ``magnitude`` and ``units``) - - -Audio properties ----------------- - -- **audio_channels** - - Number of channels for audio. - - - ``1.0``, ``2.0``, ``5.1``, ``7.1`` - - -- **audio_codec** - - Codec used for audio. - - - ``AAC``, ``Dolby Atmos``, ``Dolby Digital``, ``Dolby Digital Plus``, ``Dolby TrueHD``, ``DTS``, ``FLAC``, ``LPCM``, - ``MP2``, ``MP3``, ``Opus``, ``PCM``, ``Vorbis`` - - -- **audio_profile** - - The codec profile used for audio. - - - ``Extended Surround``, ``EX``, ``High Efficiency``, ``High Quality``, ``High Resolution Audio``, ``Low Complexity``, - ``Master Audio`` - - -- **audio_bit_rate** - - Audio bit rate (Kbps, Mbps). Examples: ``448Kbps`` (````), ``1.5Mbps`` (````). - - - ``[]`` (object has ``magnitude`` and ``units``) - - -Localization properties ------------------------ - -- **country** - - Country(ies) of content. Often found in series, ``Shameless (US)`` for instance. - - - ``[]`` (This class equals name and iso code) - - -- **language** - - Language(s) of the audio soundtrack. - - - ``[]`` (This class equals name and iso code) - - -- **subtitle_language** - - Language(s) of the subtitles. - - - ``[]`` (This class equals name and iso code) - - -Other properties ----------------- - -- **bonus** - - Bonus number. - - -- **bonus_title** - - Bonus title. - - -- **cd** - - CD number. - - -- **cd_count** - - Total count of CD. - - -- **crc32** - - CRC32 of the file. - - -- **uuid** - - Volume identifier (UUID). - - -- **size** - - Size (MB, GB, TB). Examples: ``1.2GB`` (````), ``430MB`` (````). - - - ``[]`` (object has ``magnitude`` and ``units``) - - -- **edition** - - Edition of the movie. - - - ``Alternative Cut``, ``Collector``, ``Criterion``, ``Deluxe``, ``Director's Cut``, ``Director's Definitive Cut``, - ``Extended``, ``Fan``, ``Festival``, ``IMAX``, ``Remastered``, ``Special``, ``Limited``, ``Theatrical``, - ``Ultimate``, ``Uncensored``, ``Uncut``, ``Unrated`` - - -- **film** - - Film number of this movie. - - -- **film_title** - - Film title of this movie. - - -- **film_series** - - Film series of this movie. - - -- **other** - - Other property will appear under this property. - - - ``3D``, ``Audio Fixed``, ``Bonus``, ``BT.2020``, ``Classic``, ``Colorized``, ``Complete``, ``Converted``, - ``Documentary``, ``Dolby Vision``, ``Dual Audio``, ``East Coast Feed``, ``Extras``, ``Fan Subtitled``, - ``Fast Subtitled``, ``Full HD``, ``Hardcoded Subtitles``, ``HD``, ``HDR10``, ``High Frame Rate``, - ``Variable Frame Rate``, ``High Quality``, ``High Resolution``, ``Internal``, ``Line Dubbed``, ``Line Audio``, - ``Mic Dubbed``, ``Micro HD``, ``Mux``, ``NTSC``, ``Obfuscated``, ``Open Matte``, ``Original Aspect Ratio``, - ``Original Video``, ``PAL``, ``Preair``, ``Proof``, ``Proper``, ``PS Vita``, ``Read NFO``, ``Region 5``, - ``Region C``, ``Reencoded``, ``Remux``, ``Repost``, ``Retail``, ``Rip``, ``Sample``, ``Screener``, ``SECAM``, - ``Standard Dynamic Range``, ``Straight to Video``, ``Sync Fixed``, ``Trailer``, ``Ultra HD``, ``Upscaled``, - ``West Coast Feed``, ``Widescreen``, ``XXX`` diff --git a/docs/sources.md b/docs/sources.md new file mode 100644 index 0000000..4128a18 --- /dev/null +++ b/docs/sources.md @@ -0,0 +1,24 @@ +Getting the source code +======================= + +GuessIt is actively developed on [GitHub](https://github.com/guessit-io/guessit). + +You can either clone the public repository: + + $ git clone https://github.com/guessit-io/guessit.git + +Download the [tarball](https://github.com/guessit-io/guessit/tarball/master): + + $ curl -L https://github.com/guessit-io/guessit/tarball/master -o guessit.tar.gz + +Or download the [zipball](https://github.com/guessit-io/guessit/zipball/master): + + $ curl -L https://github.com/guessit-io/guessit/zipball/master -o guessit.zip + +Once you have a copy of the source, you can embed it in your Python package, install it into your site-packages folder like that: + + $ python setup.py install + +or use it directly from the source folder for development: + + $ python setup.py develop diff --git a/docs/sources.rst b/docs/sources.rst deleted file mode 100644 index c751f1b..0000000 --- a/docs/sources.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. _sources: - -Getting the source code -======================= - -GuessIt is actively developed on `GitHub `_. - -You can either clone the public repository:: - - $ git clone https://github.com/guessit-io/guessit.git - -Download the `tarball `_:: - - $ curl -L https://github.com/guessit-io/guessit/tarball/master -o guessit.tar.gz - -Or download the `zipball `_:: - - $ curl -L https://github.com/guessit-io/guessit/zipball/master -o guessit.zip - - -Once you have a copy of the source, you can embed it in your Python package, -install it into your site-packages folder like that:: - - $ python setup.py install - -or use it directly from the source folder for development:: - - $ python setup.py develop diff --git a/guessit/__version__.py b/guessit/__version__.py index 0cd3e06..5b05aec 100644 --- a/guessit/__version__.py +++ b/guessit/__version__.py @@ -4,4 +4,4 @@ Version module """ # pragma: no cover -__version__ = '3.1.2.dev0' +__version__ = '3.1.2' diff --git a/guessit/rules/properties/release_group.py b/guessit/rules/properties/release_group.py index ecff808..71998a4 100644 --- a/guessit/rules/properties/release_group.py +++ b/guessit/rules/properties/release_group.py @@ -321,7 +321,6 @@ class AnimeReleaseGroup(Rule): for filepart in marker_sorted(matches.markers.named('path'), matches): - # pylint:disable=bad-continuation empty_group = matches.markers.range(filepart.start, filepart.end, lambda marker: (marker.name == 'group' diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..46698b6 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,31 @@ +site_name: GuessIt + +site_url: https://guessit.io +site_description: GuessIt is a python library that extracts as much information as possible from a video filename. +site_author: Rémi Alvergnat + +repo_url: https://github.com/guessit-io/guessit +edit_uri: https://github.com/guessit-io/guessit/blob/develop/docs + +theme: + language: 'en' + name: 'material' + +markdown_extensions: + - admonition + - codehilite + - toc: + permalink: true + - pymdownx.details + - pymdownx.superfences + +nav: + - Home: index.md + - Properties: properties.md + - Sources: sources.md + - Configuration: configuration.md + - Migration (2.x to 3.x): migration2to3.md + - Migration (1.x to 2.x): migration.md + +plugins: + - search diff --git a/pylintrc b/pylintrc index 228aa1b..97889e4 100644 --- a/pylintrc +++ b/pylintrc @@ -68,7 +68,7 @@ disable=unichr-builtin,backtick,delslice-method,indexing-exception,execfile-buil unpacking-in-except,import-star-module-level,buffer-builtin,round-builtin,file-builtin,reload-builtin,old-division, apply-builtin,oct-method,nonzero-method,basestring-builtin,raising-string,too-few-public-methods,too-many-arguments, too-many-instance-attributes,bad-builtin,too-many-ancestors,too-few-format-args,fixme,duplicate-code, - deprecated-lambda,too-many-nested-blocks,useless-object-inheritance,import-outside-toplevel, + deprecated-lambda,too-many-nested-blocks,useless-object-inheritance,import-outside-toplevel I diff --git a/setup.cfg b/setup.cfg index d0aeb4a..75eda42 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,8 @@ -[zest.releaser] -python-file-with-version = guessit/__version__.py +[semantic_release] +version_variable = guessit/__version__.py:__version__ +commit_subject = chore(release): Release v{version} +commit_author = github-actions +upload_to_pypi_glob_patterns = *.tar.gz,*.whl [aliases] test=pytest diff --git a/setup.py b/setup.py index 2f1910c..f352dc7 100644 --- a/setup.py +++ b/setup.py @@ -1,26 +1,26 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +from setuptools import setup, find_packages + import io import os import re import sys -from setuptools import setup, find_packages - here = os.path.abspath(os.path.dirname(__file__)) -with io.open(os.path.join(here, 'README.rst'), encoding='utf-8') as f: +with io.open(os.path.join(here, 'README.md'), encoding='utf-8') as f: readme = f.read() -with io.open(os.path.join(here, 'HISTORY.rst'), encoding='utf-8') as f: - history = f.read() +with io.open(os.path.join(here, 'CHANGELOG.md'), encoding='utf-8') as f: + changelog = f.read() install_requires = ['rebulk==2.*', 'babelfish', 'python-dateutil', 'six'] setup_requires = ['pytest-runner'] -dev_require = ['zest.releaser[recommended]', 'pylint', 'tox', 'sphinx', 'sphinx-autobuild'] +dev_require = ['pylint', 'mkdocs', 'mkdocs-material'] tests_require = ['pytest>=3.3', 'pytest-benchmark', 'PyYAML'] @@ -38,26 +38,26 @@ with io.open('guessit/__version__.py', 'r') as f: args = dict(name='guessit', version=version, description='GuessIt - a library for guessing information from video filenames.', - long_description=readme + '\n\n' + history, + long_description=readme + '\n\n' + changelog, + long_description_content_type='text/markdown', # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers classifiers=['Development Status :: 5 - Production/Stable', 'License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)', 'Operating System :: OS Independent', 'Intended Audience :: Developers', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', 'Topic :: Multimedia', 'Topic :: Software Development :: Libraries :: Python Modules' ], keywords='python library release parser name filename movies series episodes animes', author='Rémi Alvergnat', author_email='toilal.dev@gmail.com', - url='http://guessit.readthedocs.org/', + url='http://guessit.io', download_url='https://pypi.python.org/packages/source/g/guessit/guessit-%s.tar.gz' % version, license='LGPLv3', packages=find_packages(),