mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-24 06:55:23 -07:00
Compare commits
No commits in common. "develop" and "v2.0.1" have entirely different histories.
2620 changed files with 140295 additions and 264761 deletions
5
.gitattributes
vendored
5
.gitattributes
vendored
|
@ -62,4 +62,7 @@
|
||||||
#*.rtf diff=astextplain
|
#*.rtf diff=astextplain
|
||||||
#*.RTF diff=astextplain
|
#*.RTF diff=astextplain
|
||||||
|
|
||||||
Old/* linguist-vendored
|
|
||||||
|
PlexRequests.UI/Content/* linguist-vendored
|
||||||
|
PlexRequests.UI/Content/* linguist-vendored
|
||||||
|
base.scss linguist-vendored=false
|
||||||
|
|
8
.github/FUNDING.yml
vendored
8
.github/FUNDING.yml
vendored
|
@ -1,8 +0,0 @@
|
||||||
# These are supported funding model platforms
|
|
||||||
|
|
||||||
github: [tidusjar]
|
|
||||||
patreon: tidusjar
|
|
||||||
#open_collective: # Replace with a single Open Collective username
|
|
||||||
#ko_fi: # Replace with a single Ko-fi username
|
|
||||||
#tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
|
||||||
custom: https://paypal.me/PlexRequestsNet
|
|
39
.github/ISSUE_TEMPLATE.md
vendored
Normal file
39
.github/ISSUE_TEMPLATE.md
vendored
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<!---
|
||||||
|
|
||||||
|
!! Please use the Support / bug report template, otherwise we will close the Github issue !!
|
||||||
|
|
||||||
|
(Pleas submit a feature request over here: http://feathub.com/tidusjar/Ombi)
|
||||||
|
|
||||||
|
--->
|
||||||
|
|
||||||
|
#### Ombi Version:
|
||||||
|
|
||||||
|
V 1.XX.XX
|
||||||
|
|
||||||
|
#### Update Branch:
|
||||||
|
|
||||||
|
Stable/Early Access Preview/development
|
||||||
|
|
||||||
|
#### Operating System:
|
||||||
|
|
||||||
|
(Place text here)
|
||||||
|
|
||||||
|
#### Mono Version (only if your not on windows)
|
||||||
|
|
||||||
|
(Place text here)
|
||||||
|
|
||||||
|
#### Applicable Logs (from `/logs/` directory or the Admin page):
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
(Logs go here. Don't remove the ``` tags for showing your logs correctly. Please make sure you remove any personal information from the logs)
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Problem Description:
|
||||||
|
|
||||||
|
(Place text here)
|
||||||
|
|
||||||
|
#### Reproduction Steps:
|
||||||
|
|
||||||
|
Please include any steps to reproduce the issue, this the request that is causing the problem etc.
|
50
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
50
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
|
@ -1,50 +0,0 @@
|
||||||
name: "\U0001F41B Bug report"
|
|
||||||
description: 'Report a reproducible bug in Ombi'
|
|
||||||
body:
|
|
||||||
- type: markdown
|
|
||||||
attributes:
|
|
||||||
value: Thanks for taking the time to file a bug report! Please fill out this form as completely as possible.
|
|
||||||
- type: markdown
|
|
||||||
attributes:
|
|
||||||
value: |
|
|
||||||
If you leave out sections there is a high likelihood your issue will be closed.
|
|
||||||
If you have a question or you think your issue might be caused by your application code, you can get help from the community on [Discord](https://discord.gg/Sa7wNWb).
|
|
||||||
- type: textarea
|
|
||||||
attributes:
|
|
||||||
label: Summary
|
|
||||||
description: |
|
|
||||||
Clearly describe what the expected behavior is vs. what is actually happening. Please include any reproduction steps that is required to reproduce this issue.
|
|
||||||
If your summary is simply, for example: "I cannot setup Plex", then you will need to [continue debugging on your own](https://docs.ombi.app/) to more precisely define your issue before proceeding.
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: input
|
|
||||||
id: version
|
|
||||||
attributes:
|
|
||||||
label: Ombi Version
|
|
||||||
description: What version of ombi are you running?
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: dropdown
|
|
||||||
attributes:
|
|
||||||
label: What platform(s) does this occur on?
|
|
||||||
multiple: true
|
|
||||||
options:
|
|
||||||
- Docker
|
|
||||||
- Windows
|
|
||||||
- Linux
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: dropdown
|
|
||||||
attributes:
|
|
||||||
label: What database are you using?
|
|
||||||
options:
|
|
||||||
- SQLite (Default)
|
|
||||||
- MySQL
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
|
||||||
id: logs
|
|
||||||
attributes:
|
|
||||||
label: Relevant log output
|
|
||||||
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
|
||||||
render: shell
|
|
11
.github/ISSUE_TEMPLATE/config.yml
vendored
11
.github/ISSUE_TEMPLATE/config.yml
vendored
|
@ -1,11 +0,0 @@
|
||||||
blank_issues_enabled: false
|
|
||||||
contact_links:
|
|
||||||
- name: Docs
|
|
||||||
url: https://docs.ombi.app/
|
|
||||||
about: The Ombi documentation should help guide you through installation and setup as well as help resolve common problems and answer frequently asked questions
|
|
||||||
- name: Discord support
|
|
||||||
url: https://discord.gg/Sa7wNWb
|
|
||||||
about: Ask questions about Ombi
|
|
||||||
- name: Feature suggestions
|
|
||||||
url: https://ombifeatures.featureupvote.com
|
|
||||||
about: Share your suggestions or ideas to make Ombi better!
|
|
7
.github/labeler.yml
vendored
7
.github/labeler.yml
vendored
|
@ -1,7 +0,0 @@
|
||||||
automation: tests/**/*
|
|
||||||
|
|
||||||
frontend: src/Ombi/ClientApp/**/*
|
|
||||||
|
|
||||||
backend: src/**/*.cs
|
|
||||||
|
|
||||||
devops: .github/workflows/*
|
|
23
.github/stale.yml
vendored
23
.github/stale.yml
vendored
|
@ -1,23 +0,0 @@
|
||||||
# Number of days of inactivity before an issue becomes stale
|
|
||||||
daysUntilStale: 60
|
|
||||||
# Number of days of inactivity before a stale issue is closed
|
|
||||||
daysUntilClose: 7
|
|
||||||
# Issues with these labels will never be considered stale
|
|
||||||
exemptLabels:
|
|
||||||
- pinned
|
|
||||||
- security
|
|
||||||
- bug / issue
|
|
||||||
- help wanted
|
|
||||||
- possible feature
|
|
||||||
- planned
|
|
||||||
- in progress
|
|
||||||
- enhancement
|
|
||||||
# Label to use when marking an issue as stale
|
|
||||||
staleLabel: wontfix
|
|
||||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
|
||||||
markComment: >
|
|
||||||
This issue has been automatically marked as stale because it has not had
|
|
||||||
recent activity. It will be closed if no further activity occurs. Thank you
|
|
||||||
for your contributions.
|
|
||||||
# Comment to post when closing a stale issue. Set to `false` to disable
|
|
||||||
closeComment: false
|
|
81
.github/workflows/automation-tests.yml
vendored
81
.github/workflows/automation-tests.yml
vendored
|
@ -1,81 +0,0 @@
|
||||||
name: Automation Tests
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ develop, feature/** ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ develop ]
|
|
||||||
schedule:
|
|
||||||
- cron: '0 0 * * *'
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
automation-tests:
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Setup .NET
|
|
||||||
uses: actions/setup-dotnet@v1
|
|
||||||
with:
|
|
||||||
dotnet-version: 6.0.x
|
|
||||||
- uses: actions/setup-node@v2
|
|
||||||
with:
|
|
||||||
node-version: '20'
|
|
||||||
|
|
||||||
- uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
'**/node_modules'
|
|
||||||
'/home/runner/.cache/Cypress'
|
|
||||||
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
|
|
||||||
|
|
||||||
- name: Install Frontend Deps
|
|
||||||
run: yarn --cwd ./src/Ombi/ClientApp install
|
|
||||||
|
|
||||||
- name: Build Frontend
|
|
||||||
run: yarn --cwd ./src/Ombi/ClientApp build
|
|
||||||
|
|
||||||
- name: Build Docker Image
|
|
||||||
run: docker build -t ombi src/
|
|
||||||
|
|
||||||
- name: Run Docker Image
|
|
||||||
run: nohup docker run --rm -p 5000:5000 ombi &
|
|
||||||
|
|
||||||
- name: Run Wiremock
|
|
||||||
run: nohup docker run --rm -p 32400:8080 --name wiremock wiremock/wiremock:2.35.0 &
|
|
||||||
|
|
||||||
- name: Sleep for server to start
|
|
||||||
run: sleep 20
|
|
||||||
|
|
||||||
# - name: Start Frontend
|
|
||||||
# run: |
|
|
||||||
# nohup yarn --cwd ./src/Ombi/ClientApp start &
|
|
||||||
|
|
||||||
# - name: Install Automation Deps
|
|
||||||
# run: yarn --cwd ./tests install
|
|
||||||
|
|
||||||
# - name: Start Backend
|
|
||||||
# run: |
|
|
||||||
# nohup dotnet run --project ./src/Ombi -- --host http://*:3577 &
|
|
||||||
|
|
||||||
- name: Cypress Tests
|
|
||||||
uses: cypress-io/github-action@v4
|
|
||||||
with:
|
|
||||||
record: true
|
|
||||||
browser: chrome
|
|
||||||
headless: true
|
|
||||||
working-directory: tests
|
|
||||||
wait-on: http://localhost:5000/
|
|
||||||
# 10 minutes
|
|
||||||
wait-on-timeout: 600
|
|
||||||
env:
|
|
||||||
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Stop Docker
|
|
||||||
if: always()
|
|
||||||
run: |
|
|
||||||
docker ps -q | xargs -I {} docker logs {}
|
|
||||||
docker container kill $(docker ps -q)
|
|
214
.github/workflows/build.yml
vendored
214
.github/workflows/build.yml
vendored
|
@ -1,214 +0,0 @@
|
||||||
name: CI Build
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ develop, master ]
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-ui:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: actions/setup-node@v2
|
|
||||||
with:
|
|
||||||
node-version: '20'
|
|
||||||
|
|
||||||
- name: NodeModules Cache
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: '**/node_modules'
|
|
||||||
key: node_modules-${{ hashFiles('**/yarn.lock') }}
|
|
||||||
|
|
||||||
- name: UI Install
|
|
||||||
run: yarn --cwd ./src/Ombi/ClientApp install
|
|
||||||
|
|
||||||
- name: Build UI
|
|
||||||
run: yarn --cwd ./src/Ombi/ClientApp run build
|
|
||||||
|
|
||||||
- name: Publish UI Artifacts
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: angular_dist
|
|
||||||
path: |
|
|
||||||
./src/Ombi/ClientApp/dist
|
|
||||||
|
|
||||||
unit-test:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: actions/setup-dotnet@v1
|
|
||||||
with:
|
|
||||||
dotnet-version: '8.0.x'
|
|
||||||
|
|
||||||
- name: Nuget Cache
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.nuget/packages
|
|
||||||
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-nuget
|
|
||||||
|
|
||||||
- name: Run Unit Tests
|
|
||||||
run: |
|
|
||||||
cd src
|
|
||||||
dotnet test -c NonUiBuild --logger trx --results-directory "TestResults"
|
|
||||||
|
|
||||||
versioning:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [ build-ui, unit-test ]
|
|
||||||
outputs:
|
|
||||||
changelog: ${{ steps.changelog.outputs.clean_changelog }}
|
|
||||||
tag: ${{ steps.changelog.outputs.tag }}
|
|
||||||
version: ${{ steps.changelog.outputs.version }}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Conventional Changelog Action
|
|
||||||
id: changelog
|
|
||||||
uses: TriPSs/conventional-changelog-action@v3
|
|
||||||
with:
|
|
||||||
version-file: 'version.json'
|
|
||||||
release-count: 40
|
|
||||||
skip-on-empty: 'false'
|
|
||||||
git-message: 'chore(release): :rocket: {version}'
|
|
||||||
|
|
||||||
- name: Output version
|
|
||||||
run: |
|
|
||||||
echo "outputs: ${{ steps.changelog.outputs.tag }}"
|
|
||||||
echo "Version: ${{ steps.changelog.outputs.version }}"
|
|
||||||
echo "log: ${{ steps.changelog.outputs.clean_changelog }}"
|
|
||||||
|
|
||||||
publish:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [ build-ui, versioning ]
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: win-x64
|
|
||||||
format: zip
|
|
||||||
compression: zip
|
|
||||||
- os: win-x86
|
|
||||||
format: zip
|
|
||||||
compression: zip
|
|
||||||
- os: linux-x64
|
|
||||||
format: tar.gz
|
|
||||||
compression: tar
|
|
||||||
- os: linux-arm
|
|
||||||
format: tar.gz
|
|
||||||
compression: tar
|
|
||||||
- os: linux-arm64
|
|
||||||
compression: tar
|
|
||||||
format: tar.gz
|
|
||||||
- os: osx-x64
|
|
||||||
compression: tar
|
|
||||||
format: tar.gz
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: actions/setup-dotnet@v1
|
|
||||||
with:
|
|
||||||
dotnet-version: '8.0.x'
|
|
||||||
- uses: actions/setup-dotnet@v1
|
|
||||||
with:
|
|
||||||
dotnet-version: '5.0.x'
|
|
||||||
|
|
||||||
- name: Nuget Cache
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.nuget/packages
|
|
||||||
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-nuget
|
|
||||||
|
|
||||||
- name: Set Backend Version
|
|
||||||
run: |
|
|
||||||
dotnet tool install -g dotnet-setversion
|
|
||||||
setversion -r ${{ needs.versioning.outputs.version }}
|
|
||||||
working-directory: src
|
|
||||||
|
|
||||||
- name: Publish Backend ${{ matrix.os }}
|
|
||||||
run: dotnet publish -c Release -r ${{ matrix.os }} -o "${{ matrix.os }}" --self-contained true -p:PublishSingleFile=true
|
|
||||||
working-directory: src/Ombi
|
|
||||||
|
|
||||||
- name: Download Angular
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
name: angular_dist
|
|
||||||
path: ~/src/Ombi/dist
|
|
||||||
|
|
||||||
- name: Copy Dist to Artifacts
|
|
||||||
run: |
|
|
||||||
cd ${{ matrix.os }}
|
|
||||||
sudo mkdir -p ClientApp/dist
|
|
||||||
echo "mkdir /ClientApp"
|
|
||||||
echo "list os (ClientApp should be here)"
|
|
||||||
ls
|
|
||||||
cd ..
|
|
||||||
echo "Copy dist to /ClientApp"
|
|
||||||
sudo mv ~/src/Ombi/dist/* ${{ matrix.os }}/ClientApp/dist
|
|
||||||
working-directory: src/Ombi
|
|
||||||
|
|
||||||
- name: Archive Release
|
|
||||||
uses: thedoctor0/zip-release@master
|
|
||||||
with:
|
|
||||||
type: '${{ matrix.compression }}'
|
|
||||||
filename: '../${{ matrix.os }}.${{ matrix.format }}'
|
|
||||||
path: '.'
|
|
||||||
directory: 'src/Ombi/${{ matrix.os }}'
|
|
||||||
|
|
||||||
- name: Publish Release
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: ${{ matrix.os }}
|
|
||||||
path: |
|
|
||||||
./src/Ombi/${{ matrix.os }}.${{ matrix.format }}
|
|
||||||
|
|
||||||
release:
|
|
||||||
needs: [ publish, unit-test, versioning ]
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- name: Download Artifacts
|
|
||||||
id: download
|
|
||||||
uses: actions/download-artifact@v4
|
|
||||||
with:
|
|
||||||
path: artifacts
|
|
||||||
|
|
||||||
- name: Publish to GitHub Master
|
|
||||||
uses: softprops/action-gh-release@v1
|
|
||||||
if: contains(github.ref, 'master')
|
|
||||||
with:
|
|
||||||
body: ${{ needs.versioning.outputs.changelog }}
|
|
||||||
name: ${{ needs.versioning.outputs.tag }}
|
|
||||||
tag_name: ${{ needs.versioning.outputs.tag }}
|
|
||||||
files: |
|
|
||||||
artifacts/**/*.tar.gz
|
|
||||||
artifacts/**/*.zip
|
|
||||||
|
|
||||||
- name: Publish to GitHub Develop
|
|
||||||
uses: softprops/action-gh-release@v1
|
|
||||||
if: contains(github.ref, 'develop')
|
|
||||||
with:
|
|
||||||
prerelease: true
|
|
||||||
generate_release_notes: false
|
|
||||||
body: ${{ needs.versioning.outputs.changelog }}
|
|
||||||
name: ${{ needs.versioning.outputs.tag }}
|
|
||||||
tag_name: ${{ needs.versioning.outputs.tag }}
|
|
||||||
files: |
|
|
||||||
artifacts/**/*.tar.gz
|
|
||||||
artifacts/**/*.zip
|
|
||||||
|
|
||||||
update-apt:
|
|
||||||
needs: [ release, versioning ]
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Trigger APT Build
|
|
||||||
uses: fjogeleit/http-request-action@master
|
|
||||||
with:
|
|
||||||
url: 'https://api.github.com/repos/Ombi-app/Ombi.Apt/actions/workflows/build-deb.yml/dispatches'
|
|
||||||
method: 'POST'
|
|
||||||
contentType: 'application/json'
|
|
||||||
data: '{ "ref":"main", "inputs": { "version": "${{ needs.versioning.outputs.tag }}"} }'
|
|
||||||
customHeaders: '{"Accept":"application/vnd.github.v3+json", "Authorization":"Bearer ${{secrets.APT_PAT}}", "User-Agent":"Ombi"}'
|
|
||||||
|
|
||||||
|
|
47
.github/workflows/chromatic.yml
vendored
47
.github/workflows/chromatic.yml
vendored
|
@ -1,47 +0,0 @@
|
||||||
# name: 'Chromatic'
|
|
||||||
|
|
||||||
# # Event for the workflow
|
|
||||||
# on:
|
|
||||||
# push:
|
|
||||||
# workflow_dispatch:
|
|
||||||
|
|
||||||
# # List of jobs
|
|
||||||
# jobs:
|
|
||||||
# storybook-build:
|
|
||||||
# # Operating System
|
|
||||||
# runs-on: ubuntu-latest
|
|
||||||
# steps:
|
|
||||||
# - name: Checkout repository
|
|
||||||
# uses: actions/checkout@v2
|
|
||||||
# with:
|
|
||||||
# fetch-depth: 0
|
|
||||||
|
|
||||||
# - name: NodeModules Cache
|
|
||||||
# uses: actions/cache@v4
|
|
||||||
# with:
|
|
||||||
# path: '**/node_modules'
|
|
||||||
# key: node_modules-${{ hashFiles('**/yarn.lock') }}
|
|
||||||
|
|
||||||
# - name: Install dependencies
|
|
||||||
# working-directory: ./src/Ombi/ClientApp
|
|
||||||
# run: yarn
|
|
||||||
|
|
||||||
# - name: Publish to Chromatic
|
|
||||||
# if: github.ref != 'refs/heads/master'
|
|
||||||
# uses: chromaui/action@v1
|
|
||||||
# with:
|
|
||||||
# projectToken: 7c47e1a1a4bd
|
|
||||||
# exitZeroOnChanges: true
|
|
||||||
# workingDir: ./src/Ombi/ClientApp
|
|
||||||
# buildScriptName: storybookbuild
|
|
||||||
# exitOnceUploaded: true
|
|
||||||
|
|
||||||
# - name: Publish to Chromatic and auto accept changes
|
|
||||||
# if: github.ref == 'refs/heads/develop'
|
|
||||||
# uses: chromaui/action@v1
|
|
||||||
# with:
|
|
||||||
# projectToken: 7c47e1a1a4bd
|
|
||||||
# autoAcceptChanges: true # 👈 Option to accept all changes
|
|
||||||
# workingDir: ./src/Ombi/ClientApp
|
|
||||||
# buildScriptName: storybookbuild
|
|
||||||
# exitOnceUploaded: true
|
|
65
.github/workflows/codeql-analysis.yml
vendored
65
.github/workflows/codeql-analysis.yml
vendored
|
@ -1,65 +0,0 @@
|
||||||
# For most projects, this workflow file will not need changing; you simply need
|
|
||||||
# to commit it to your repository.
|
|
||||||
#
|
|
||||||
# You may wish to alter this file to override the set of languages analyzed,
|
|
||||||
# or to provide custom queries or build logic.
|
|
||||||
#
|
|
||||||
# ******** NOTE ********
|
|
||||||
# We have attempted to detect the languages in your repository. Please check
|
|
||||||
# the `language` matrix defined below to confirm you have the correct set of
|
|
||||||
# supported CodeQL languages.
|
|
||||||
#
|
|
||||||
name: "CodeQL"
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ develop, master ]
|
|
||||||
pull_request:
|
|
||||||
# The branches below must be a subset of the branches above
|
|
||||||
branches: [ develop ]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
analyze:
|
|
||||||
name: Analyze
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
language: [ 'csharp', 'javascript' ]
|
|
||||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
|
|
||||||
# Learn more:
|
|
||||||
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
|
||||||
- name: Initialize CodeQL
|
|
||||||
uses: github/codeql-action/init@v3
|
|
||||||
with:
|
|
||||||
languages: ${{ matrix.language }}
|
|
||||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
||||||
# By default, queries listed here will override any specified in a config file.
|
|
||||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
|
||||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
|
||||||
|
|
||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
||||||
# If this step fails, then you should remove it and run the build manually (see below)
|
|
||||||
- name: Autobuild
|
|
||||||
uses: github/codeql-action/autobuild@v3
|
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
|
||||||
# 📚 https://git.io/JvXDl
|
|
||||||
|
|
||||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
|
||||||
# and modify them (or add more) to build your code if your project
|
|
||||||
# uses a compiled language
|
|
||||||
|
|
||||||
#- run: |
|
|
||||||
# make bootstrap
|
|
||||||
# make release
|
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
|
||||||
uses: github/codeql-action/analyze@v3
|
|
20
.github/workflows/contributors.yml
vendored
20
.github/workflows/contributors.yml
vendored
|
@ -1,20 +0,0 @@
|
||||||
name: Contributors
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ develop ]
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
update-contributors:
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Contribute List
|
|
||||||
uses: akhilmhdh/contributors-readme-action@v2.2.1
|
|
||||||
with:
|
|
||||||
commit_message: "chore: :busts_in_silhouette: Updated Contributors [skip ci]"
|
|
||||||
image_size: 50
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
32
.github/workflows/issue-check.yml
vendored
32
.github/workflows/issue-check.yml
vendored
|
@ -1,32 +0,0 @@
|
||||||
name: 'Issue Check'
|
|
||||||
|
|
||||||
on:
|
|
||||||
issues:
|
|
||||||
types: [opened]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
issueCheck:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
|
|
||||||
- if: startsWith(github.event.issue.body , '**Describe the bug**') == false
|
|
||||||
name: Close Issue
|
|
||||||
uses: peter-evans/close-issue@v1
|
|
||||||
with:
|
|
||||||
comment: |
|
|
||||||
Hello, Please use the Github template to report an issue. If this is a feature request, please take a look at the readme. <br/> Thanks, <br/> Ombi Bot
|
|
||||||
|
|
||||||
- if: startsWith(github.event.issue.body , '**Describe the bug**') == true
|
|
||||||
name: Create comment
|
|
||||||
uses: peter-evans/create-or-update-comment@v1
|
|
||||||
with:
|
|
||||||
issue-number: ${{ github.event.issue.number }}
|
|
||||||
body: |
|
|
||||||
Hi!
|
|
||||||
<br/>Thanks for the issue report. Before a real human comes by, please make sure you used our bug report format.
|
|
||||||
<br/>Have you looked at the wiki yet? https://docs.ombi.app/
|
|
||||||
<br/>Before posting make sure you also read our [FAQ](https://docs.ombi.app/info/faq/).
|
|
||||||
<br/> Make the title describe your issue. Having 'not working' or 'I get this bug' for 100 issues, isn't really helpful.
|
|
||||||
<br/> If we need more information or there is some progress we tag the issue or update the tag and keep you updated.
|
|
||||||
<br/> Thanks!
|
|
||||||
<br/> Ombi Bot.
|
|
21
.github/workflows/label.yml
vendored
21
.github/workflows/label.yml
vendored
|
@ -1,21 +0,0 @@
|
||||||
# This workflow will triage pull requests and apply a label based on the
|
|
||||||
# paths that are modified in the pull request.
|
|
||||||
#
|
|
||||||
# To use this workflow, you will need to set up a .github/labeler.yml
|
|
||||||
# file with configuration. For more information, see:
|
|
||||||
# https://github.com/actions/labeler
|
|
||||||
|
|
||||||
name: Labeler
|
|
||||||
on: [pull_request]
|
|
||||||
|
|
||||||
permissions: write-all
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
label:
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/labeler@v2
|
|
||||||
with:
|
|
||||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
|
116
.github/workflows/pr.yml
vendored
116
.github/workflows/pr.yml
vendored
|
@ -1,116 +0,0 @@
|
||||||
name: PR Build
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
types: [opened, synchronize, reopened]
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
pull-requests: write
|
|
||||||
issues: write
|
|
||||||
repository-projects: write
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-ui:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: actions/setup-node@v2
|
|
||||||
with:
|
|
||||||
node-version: '20'
|
|
||||||
|
|
||||||
- name: NodeModules Cache
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: '**/node_modules'
|
|
||||||
key: node_modules-${{ hashFiles('**/yarn.lock') }}
|
|
||||||
|
|
||||||
- name: UI Install
|
|
||||||
run: yarn --cwd ./src/Ombi/ClientApp install
|
|
||||||
|
|
||||||
- name: Build UI
|
|
||||||
run: yarn --cwd ./src/Ombi/ClientApp run build
|
|
||||||
|
|
||||||
unit-test:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: actions/setup-dotnet@v1
|
|
||||||
with:
|
|
||||||
dotnet-version: '8.0.x'
|
|
||||||
|
|
||||||
- name: Nuget Cache
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.nuget/packages
|
|
||||||
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-nuget
|
|
||||||
|
|
||||||
- name: Run Unit Tests
|
|
||||||
run: |
|
|
||||||
cd src
|
|
||||||
dotnet test --configuration "Release" --logger "trx;LogFileName=test-results.trx"
|
|
||||||
|
|
||||||
analysis:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
# Disabling shallow clone is recommended for improving relevancy of reporting
|
|
||||||
fetch-depth: 0
|
|
||||||
- name: SonarCloud Scan
|
|
||||||
uses: sonarsource/sonarcloud-github-action@master
|
|
||||||
with:
|
|
||||||
args: >
|
|
||||||
-Dsonar.organization=ombi-app
|
|
||||||
-Dsonar.projectKey=Ombi-app_Ombi
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
|
||||||
|
|
||||||
publish:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [ unit-test ]
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: win-x64
|
|
||||||
format: zip
|
|
||||||
compression: zip
|
|
||||||
- os: win-x86
|
|
||||||
format: zip
|
|
||||||
compression: zip
|
|
||||||
- os: linux-x64
|
|
||||||
format: tar.gz
|
|
||||||
compression: tar
|
|
||||||
- os: linux-arm
|
|
||||||
format: tar.gz
|
|
||||||
compression: tar
|
|
||||||
- os: linux-arm64
|
|
||||||
compression: tar
|
|
||||||
format: tar.gz
|
|
||||||
- os: osx-x64
|
|
||||||
compression: tar
|
|
||||||
format: tar.gz
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: actions/setup-dotnet@v1
|
|
||||||
with:
|
|
||||||
dotnet-version: '8.0.x'
|
|
||||||
|
|
||||||
- name: Nuget Cache
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.nuget/packages
|
|
||||||
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-nuget
|
|
||||||
|
|
||||||
- name: Publish Backend ${{ matrix.os }}
|
|
||||||
run: dotnet publish -c Release -r ${{ matrix.os }} -o "${{ matrix.os }}" --self-contained true -p:PublishSingleFile=true
|
|
||||||
working-directory: src/Ombi
|
|
||||||
|
|
||||||
|
|
||||||
|
|
50
.github/workflows/sonarscan.yml
vendored
50
.github/workflows/sonarscan.yml
vendored
|
@ -1,50 +0,0 @@
|
||||||
name: Sonar Scanner
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
jobs:
|
|
||||||
sonarcloud:
|
|
||||||
name: SonarCloud
|
|
||||||
runs-on: windows-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
# Shallow clones should be disabled for a better relevancy of analysis
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
# Speed-up analysis by caching the scanner workspace
|
|
||||||
- name: Cache SonarCloud workspace
|
|
||||||
uses: actions/cache@v1
|
|
||||||
with:
|
|
||||||
path: ~\.sonar\cache
|
|
||||||
key: ${{ runner.os }}-sonar-cache
|
|
||||||
restore-keys: ${{ runner.os }}-sonar-cache
|
|
||||||
|
|
||||||
# Speed-up analysis by caching the scanner installation
|
|
||||||
- name: Cache SonarCloud scanner
|
|
||||||
id: cache-sonar-scanner
|
|
||||||
uses: actions/cache@v1
|
|
||||||
with:
|
|
||||||
path: .\.sonar\scanner
|
|
||||||
key: ${{ runner.os }}-sonar-scanner
|
|
||||||
restore-keys: ${{ runner.os }}-sonar-scanner
|
|
||||||
|
|
||||||
- name: Install SonarCloud scanner
|
|
||||||
if: steps.cache-sonar-scanner.outputs.cache-hit != 'true'
|
|
||||||
shell: powershell
|
|
||||||
# The --version argument is optional. If it is omitted the latest version will be installed.
|
|
||||||
run: |
|
|
||||||
New-Item -Path .\.sonar\scanner -ItemType Directory
|
|
||||||
dotnet tool update dotnet-sonarscanner --tool-path .\.sonar\scanner --version 4.8.0
|
|
||||||
- name: Build
|
|
||||||
shell: powershell
|
|
||||||
env:
|
|
||||||
# Needed to get some information about the pull request, if any
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
# The secret referenced in the command-line by SONAR_TOKEN should be generated
|
|
||||||
# from https://sonarcloud.io/account/security/
|
|
||||||
# The organization and project arguments (see /o and /k) are displayed
|
|
||||||
# on the project dashboard in SonarCloud.
|
|
||||||
run: |
|
|
||||||
.\.sonar\scanner\dotnet-sonarscanner begin /k:"Ombi-app_Ombi" /o:"ombi-app" /d:sonar.login="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io"
|
|
||||||
dotnet build src/Ombi.sln -c NonUiBuild
|
|
||||||
.\.sonar\scanner\dotnet-sonarscanner end /d:sonar.login="${{ secrets.SONAR_TOKEN }}"
|
|
18
.gitignore
vendored
18
.gitignore
vendored
|
@ -7,7 +7,7 @@
|
||||||
*.userosscache
|
*.userosscache
|
||||||
*.sln.docstates
|
*.sln.docstates
|
||||||
|
|
||||||
# User-specific files
|
# User-specific files (MonoDevelop/Xamarin Studio)
|
||||||
*.userprefs
|
*.userprefs
|
||||||
|
|
||||||
# Build results
|
# Build results
|
||||||
|
@ -20,7 +20,6 @@ x86/
|
||||||
bld/
|
bld/
|
||||||
[Bb]in/
|
[Bb]in/
|
||||||
[Oo]bj/
|
[Oo]bj/
|
||||||
.sonarqube/
|
|
||||||
|
|
||||||
# Visual Studio 2015 cache/options directory
|
# Visual Studio 2015 cache/options directory
|
||||||
.vs/
|
.vs/
|
||||||
|
@ -238,18 +237,3 @@ _Pvt_Extensions
|
||||||
*.ncrunchproject
|
*.ncrunchproject
|
||||||
*.ncrunchsolution
|
*.ncrunchsolution
|
||||||
|
|
||||||
*.txt
|
|
||||||
|
|
||||||
|
|
||||||
# CAKE - C# Make
|
|
||||||
/Tools/*
|
|
||||||
*.db-journal
|
|
||||||
|
|
||||||
# Ignore local vscode config
|
|
||||||
*.vscode
|
|
||||||
/src/Ombi/database.json
|
|
||||||
/src/Ombi/databases.json
|
|
||||||
/src/Ombi/healthchecksdb
|
|
||||||
/src/Ombi/ClientApp/package-lock.json
|
|
||||||
/src/Ombi.Core/Properties/launchSettings.json
|
|
||||||
.yarn
|
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
pull_request_rules:
|
|
||||||
- name: Automatic merge on approval
|
|
||||||
conditions:
|
|
||||||
- "#approved-reviews-by>=1"
|
|
||||||
actions:
|
|
||||||
merge:
|
|
||||||
method: merge
|
|
7
.travis.yml
Normal file
7
.travis.yml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
language: csharp
|
||||||
|
solution: Ombi.sln
|
||||||
|
install:
|
||||||
|
- mono Tools/nuget.exe restore Ombi.sln
|
||||||
|
- nuget install NUnit.Runners -OutputDirectory testrunner
|
||||||
|
script:
|
||||||
|
- xbuild /p:Configuration=Release Ombi.sln /p:TargetFrameworkVersion="v4.5"
|
BIN
Assemblies/Mono.Data.Sqlite.dll
Normal file
BIN
Assemblies/Mono.Data.Sqlite.dll
Normal file
Binary file not shown.
1324
CHANGELOG.md
1324
CHANGELOG.md
File diff suppressed because it is too large
Load diff
|
@ -1,128 +0,0 @@
|
||||||
# Contributor Covenant Code of Conduct
|
|
||||||
|
|
||||||
## Our Pledge
|
|
||||||
|
|
||||||
We as members, contributors, and leaders pledge to make participation in our
|
|
||||||
community a harassment-free experience for everyone, regardless of age, body
|
|
||||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
|
||||||
identity and expression, level of experience, education, socio-economic status,
|
|
||||||
nationality, personal appearance, race, religion, or sexual identity
|
|
||||||
and orientation.
|
|
||||||
|
|
||||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
|
||||||
diverse, inclusive, and healthy community.
|
|
||||||
|
|
||||||
## Our Standards
|
|
||||||
|
|
||||||
Examples of behavior that contributes to a positive environment for our
|
|
||||||
community include:
|
|
||||||
|
|
||||||
* Demonstrating empathy and kindness toward other people
|
|
||||||
* Being respectful of differing opinions, viewpoints, and experiences
|
|
||||||
* Giving and gracefully accepting constructive feedback
|
|
||||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
|
||||||
and learning from the experience
|
|
||||||
* Focusing on what is best not just for us as individuals, but for the
|
|
||||||
overall community
|
|
||||||
|
|
||||||
Examples of unacceptable behavior include:
|
|
||||||
|
|
||||||
* The use of sexualized language or imagery, and sexual attention or
|
|
||||||
advances of any kind
|
|
||||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
|
||||||
* Public or private harassment
|
|
||||||
* Publishing others' private information, such as a physical or email
|
|
||||||
address, without their explicit permission
|
|
||||||
* Other conduct which could reasonably be considered inappropriate in a
|
|
||||||
professional setting
|
|
||||||
|
|
||||||
## Enforcement Responsibilities
|
|
||||||
|
|
||||||
Community leaders are responsible for clarifying and enforcing our standards of
|
|
||||||
acceptable behavior and will take appropriate and fair corrective action in
|
|
||||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
|
||||||
or harmful.
|
|
||||||
|
|
||||||
Community leaders have the right and responsibility to remove, edit, or reject
|
|
||||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
|
||||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
|
||||||
decisions when appropriate.
|
|
||||||
|
|
||||||
## Scope
|
|
||||||
|
|
||||||
This Code of Conduct applies within all community spaces, and also applies when
|
|
||||||
an individual is officially representing the community in public spaces.
|
|
||||||
Examples of representing our community include using an official e-mail address,
|
|
||||||
posting via an official social media account, or acting as an appointed
|
|
||||||
representative at an online or offline event.
|
|
||||||
|
|
||||||
## Enforcement
|
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
|
||||||
reported to the community leaders responsible for enforcement at
|
|
||||||
tidusjar@gmail.com.
|
|
||||||
All complaints will be reviewed and investigated promptly and fairly.
|
|
||||||
|
|
||||||
All community leaders are obligated to respect the privacy and security of the
|
|
||||||
reporter of any incident.
|
|
||||||
|
|
||||||
## Enforcement Guidelines
|
|
||||||
|
|
||||||
Community leaders will follow these Community Impact Guidelines in determining
|
|
||||||
the consequences for any action they deem in violation of this Code of Conduct:
|
|
||||||
|
|
||||||
### 1. Correction
|
|
||||||
|
|
||||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
|
||||||
unprofessional or unwelcome in the community.
|
|
||||||
|
|
||||||
**Consequence**: A private, written warning from community leaders, providing
|
|
||||||
clarity around the nature of the violation and an explanation of why the
|
|
||||||
behavior was inappropriate. A public apology may be requested.
|
|
||||||
|
|
||||||
### 2. Warning
|
|
||||||
|
|
||||||
**Community Impact**: A violation through a single incident or series
|
|
||||||
of actions.
|
|
||||||
|
|
||||||
**Consequence**: A warning with consequences for continued behavior. No
|
|
||||||
interaction with the people involved, including unsolicited interaction with
|
|
||||||
those enforcing the Code of Conduct, for a specified period of time. This
|
|
||||||
includes avoiding interactions in community spaces as well as external channels
|
|
||||||
like social media. Violating these terms may lead to a temporary or
|
|
||||||
permanent ban.
|
|
||||||
|
|
||||||
### 3. Temporary Ban
|
|
||||||
|
|
||||||
**Community Impact**: A serious violation of community standards, including
|
|
||||||
sustained inappropriate behavior.
|
|
||||||
|
|
||||||
**Consequence**: A temporary ban from any sort of interaction or public
|
|
||||||
communication with the community for a specified period of time. No public or
|
|
||||||
private interaction with the people involved, including unsolicited interaction
|
|
||||||
with those enforcing the Code of Conduct, is allowed during this period.
|
|
||||||
Violating these terms may lead to a permanent ban.
|
|
||||||
|
|
||||||
### 4. Permanent Ban
|
|
||||||
|
|
||||||
**Community Impact**: Demonstrating a pattern of violation of community
|
|
||||||
standards, including sustained inappropriate behavior, harassment of an
|
|
||||||
individual, or aggression toward or disparagement of classes of individuals.
|
|
||||||
|
|
||||||
**Consequence**: A permanent ban from any sort of public interaction within
|
|
||||||
the community.
|
|
||||||
|
|
||||||
## Attribution
|
|
||||||
|
|
||||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
|
||||||
version 2.0, available at
|
|
||||||
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
|
||||||
|
|
||||||
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
|
||||||
enforcement ladder](https://github.com/mozilla/diversity).
|
|
||||||
|
|
||||||
[homepage]: https://www.contributor-covenant.org
|
|
||||||
|
|
||||||
For answers to common questions about this code of conduct, see the FAQ at
|
|
||||||
https://www.contributor-covenant.org/faq. Translations are available at
|
|
||||||
https://www.contributor-covenant.org/translations.
|
|
40
Ombi.Api.Interfaces/IApiRequest.cs
Normal file
40
Ombi.Api.Interfaces/IApiRequest.cs
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: IApiRequest.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using RestSharp;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Interfaces
|
||||||
|
{
|
||||||
|
public interface IApiRequest
|
||||||
|
{
|
||||||
|
T Execute<T>(IRestRequest request, Uri baseUri) where T : new();
|
||||||
|
IRestResponse Execute(IRestRequest request, Uri baseUri);
|
||||||
|
T ExecuteXml<T>(IRestRequest request, Uri baseUri) where T : class;
|
||||||
|
T ExecuteJson<T>(IRestRequest request, Uri baseUri) where T : new();
|
||||||
|
}
|
||||||
|
}
|
42
Ombi.Api.Interfaces/ICouchPotatoApi.cs
Normal file
42
Ombi.Api.Interfaces/ICouchPotatoApi.cs
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: ICouchPotatoApi.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using Ombi.Api.Models.Movie;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Interfaces
|
||||||
|
{
|
||||||
|
public interface ICouchPotatoApi
|
||||||
|
{
|
||||||
|
bool AddMovie(string imdbid, string apiKey, string title, Uri baseUrl, string profileID = default(string));
|
||||||
|
CouchPotatoStatus GetStatus(Uri url, string apiKey);
|
||||||
|
CouchPotatoProfiles GetProfiles(Uri url, string apiKey);
|
||||||
|
CouchPotatoMovies GetMovies(Uri baseUrl, string apiKey, string[] status);
|
||||||
|
|
||||||
|
CouchPotatoApiKey GetApiKey(Uri baseUrl, string username, string password);
|
||||||
|
}
|
||||||
|
}
|
44
Ombi.Api.Interfaces/IHeadphonesApi.cs
Normal file
44
Ombi.Api.Interfaces/IHeadphonesApi.cs
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: IHeadphonesApi.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Ombi.Api.Models.Music;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Interfaces
|
||||||
|
{
|
||||||
|
public interface IHeadphonesApi
|
||||||
|
{
|
||||||
|
Task<bool> AddAlbum(string apiKey, Uri baseUrl, string albumId);
|
||||||
|
HeadphonesVersion GetVersion(string apiKey, Uri baseUrl);
|
||||||
|
Task<bool> AddArtist(string apiKey, Uri baseUrl, string artistId);
|
||||||
|
Task<bool> QueueAlbum(string apiKey, Uri baseUrl, string albumId);
|
||||||
|
Task<List<HeadphonesGetIndex>> GetIndex(string apiKey, Uri baseUrl);
|
||||||
|
Task<bool> RefreshArtist(string apiKey, Uri baseUrl, string artistId);
|
||||||
|
}
|
||||||
|
}
|
38
Ombi.Api.Interfaces/IMusicBrainzApi.cs
Normal file
38
Ombi.Api.Interfaces/IMusicBrainzApi.cs
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: IMusicBrainzApi.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using Ombi.Api.Models.Music;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Interfaces
|
||||||
|
{
|
||||||
|
public interface IMusicBrainzApi
|
||||||
|
{
|
||||||
|
MusicBrainzSearchResults SearchAlbum(string searchTerm);
|
||||||
|
MusicBrainzCoverArt GetCoverArt(string releaseId);
|
||||||
|
MusicBrainzReleaseInfo GetAlbum(string releaseId);
|
||||||
|
}
|
||||||
|
}
|
36
Ombi.Api.Interfaces/INetflixApi.cs
Normal file
36
Ombi.Api.Interfaces/INetflixApi.cs
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2017 Jamie Rees
|
||||||
|
// File: INetflixApi.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using Ombi.Api.Models.Netflix;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Interfaces
|
||||||
|
{
|
||||||
|
public interface INetflixApi
|
||||||
|
{
|
||||||
|
NetflixMovieResult GetMovies(string movieName, string year = null);
|
||||||
|
}
|
||||||
|
}
|
50
Ombi.Api.Interfaces/IPlexApi.cs
Normal file
50
Ombi.Api.Interfaces/IPlexApi.cs
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: IPlexApi.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using Ombi.Api.Models.Plex;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Interfaces
|
||||||
|
{
|
||||||
|
public interface IPlexApi
|
||||||
|
{
|
||||||
|
PlexAuthentication SignIn(string username, string password);
|
||||||
|
PlexFriends GetUsers(string authToken);
|
||||||
|
PlexSearch SearchContent(string authToken, string searchTerm, Uri plexFullHost);
|
||||||
|
PlexStatus GetStatus(string authToken, Uri uri);
|
||||||
|
PlexAccount GetAccount(string authToken);
|
||||||
|
PlexLibraries GetLibrarySections(string authToken, Uri plexFullHost);
|
||||||
|
PlexSearch GetLibrary(string authToken, Uri plexFullHost, string libraryId);
|
||||||
|
PlexMetadata GetMetadata(string authToken, Uri plexFullHost, string itemId);
|
||||||
|
PlexEpisodeMetadata GetEpisodeMetaData(string authToken, Uri host, string ratingKey);
|
||||||
|
PlexSearch GetAllEpisodes(string authToken, Uri host, string section, int startPage, int returnCount);
|
||||||
|
PlexServer GetServer(string authToken);
|
||||||
|
PlexSeasonMetadata GetSeasons(string authToken, Uri plexFullHost, string ratingKey);
|
||||||
|
RecentlyAddedModelOld RecentlyAddedOld(string authToken, Uri plexFullHost, string sectionId);
|
||||||
|
PlexRecentlyAddedModel RecentlyAdded(string authToken, Uri plexFullHost, string sectionId);
|
||||||
|
}
|
||||||
|
}
|
45
Ombi.Api.Interfaces/IPushbulletApi.cs
Normal file
45
Ombi.Api.Interfaces/IPushbulletApi.cs
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: IPushbulletApi.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Ombi.Api.Models.Notifications;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Interfaces
|
||||||
|
{
|
||||||
|
public interface IPushbulletApi
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Pushes the specified message.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="accessToken">The access token.</param>
|
||||||
|
/// <param name="title">The title.</param>
|
||||||
|
/// <param name="message">The message.</param>
|
||||||
|
/// <param name="deviceIdentifier">The device identifier.</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<PushbulletResponse> PushAsync(string accessToken, string title, string message, string deviceIdentifier = default(string));
|
||||||
|
}
|
||||||
|
}
|
37
Ombi.Api.Interfaces/IPushoverApi.cs
Normal file
37
Ombi.Api.Interfaces/IPushoverApi.cs
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: IPushoverApi.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Ombi.Api.Models.Notifications;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Interfaces
|
||||||
|
{
|
||||||
|
public interface IPushoverApi
|
||||||
|
{
|
||||||
|
Task<PushoverResponse> PushAsync(string accessToken, string message, string userToken);
|
||||||
|
}
|
||||||
|
}
|
45
Ombi.Api.Interfaces/ISickRageApi.cs
Normal file
45
Ombi.Api.Interfaces/ISickRageApi.cs
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: ISickRageApi.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Ombi.Api.Models.SickRage;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Interfaces
|
||||||
|
{
|
||||||
|
public interface ISickRageApi
|
||||||
|
{
|
||||||
|
Task<SickRageTvAdd> AddSeries(int tvdbId, int seasoncount, int[] seasons, string quality, string apiKey,
|
||||||
|
Uri baseUrl);
|
||||||
|
|
||||||
|
SickRagePing Ping(string apiKey, Uri baseUrl);
|
||||||
|
|
||||||
|
Task<SickRageTvAdd> AddSeason(int tvdbId, int season, string apiKey, Uri baseUrl);
|
||||||
|
|
||||||
|
Task<SickrageShows> GetShows(string apiKey, Uri baseUrl);
|
||||||
|
}
|
||||||
|
}
|
37
Ombi.Api.Interfaces/ISlackApi.cs
Normal file
37
Ombi.Api.Interfaces/ISlackApi.cs
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: ISlackApi.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Ombi.Api.Models.Notifications;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Interfaces
|
||||||
|
{
|
||||||
|
public interface ISlackApi
|
||||||
|
{
|
||||||
|
Task<string> PushAsync(string team, string token, string service, SlackNotificationBody message);
|
||||||
|
}
|
||||||
|
}
|
59
Ombi.Api.Interfaces/ISonarrApi.cs
Normal file
59
Ombi.Api.Interfaces/ISonarrApi.cs
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: ISonarrApi.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Ombi.Api.Models.Sonarr;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Interfaces
|
||||||
|
{
|
||||||
|
public interface ISonarrApi
|
||||||
|
{
|
||||||
|
List<SonarrProfile> GetProfiles(string apiKey, Uri baseUrl);
|
||||||
|
|
||||||
|
SonarrAddSeries AddSeries(int tvdbId, string title, int qualityId, bool seasonFolders, string rootPath,
|
||||||
|
int seasonCount, int[] seasons, string apiKey, Uri baseUrl, bool monitor = true,
|
||||||
|
bool searchForMissingEpisodes = false);
|
||||||
|
|
||||||
|
SonarrAddSeries AddSeriesNew(int tvdbId, string title, int qualityId, bool seasonFolders, string rootPath,
|
||||||
|
int[] seasons, string apiKey, Uri baseUrl, bool monitor = true,
|
||||||
|
bool searchForMissingEpisodes = false);
|
||||||
|
|
||||||
|
SystemStatus SystemStatus(string apiKey, Uri baseUrl);
|
||||||
|
|
||||||
|
List<Series> GetSeries(string apiKey, Uri baseUrl);
|
||||||
|
Series GetSeries(string seriesId, string apiKey, Uri baseUrl);
|
||||||
|
IEnumerable<SonarrEpisodes> GetEpisodes(string seriesId, string apiKey, Uri baseUrl);
|
||||||
|
SonarrEpisode GetEpisode(string episodeId, string apiKey, Uri baseUrl);
|
||||||
|
SonarrEpisode UpdateEpisode(SonarrEpisode episodeInfo, string apiKey, Uri baseUrl);
|
||||||
|
SonarrEpisodes UpdateEpisode(SonarrEpisodes episodeInfo, string apiKey, Uri baseUrl);
|
||||||
|
SonarrAddEpisodeResult SearchForEpisodes(int[] episodeIds, string apiKey, Uri baseUrl);
|
||||||
|
Series UpdateSeries(Series series, string apiKey, Uri baseUrl);
|
||||||
|
SonarrSeasonSearchResult SearchForSeason(int seriesId, int seasonNumber, string apiKey, Uri baseUrl);
|
||||||
|
SonarrSeriesSearchResult SearchForSeries(int seriesId, string apiKey, Uri baseUrl);
|
||||||
|
}
|
||||||
|
}
|
41
Ombi.Api.Interfaces/IWatcherApi.cs
Normal file
41
Ombi.Api.Interfaces/IWatcherApi.cs
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: IWatcherApi.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Ombi.Api.Models.Watcher;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Interfaces
|
||||||
|
{
|
||||||
|
public interface IWatcherApi
|
||||||
|
{
|
||||||
|
WatcherAddMovieResult AddMovie(string imdbId, string apiKey, Uri baseUrl);
|
||||||
|
WatcherListStatusResultContainer ListMovies(string apiKey, Uri baseUrl);
|
||||||
|
WatcherListStatusResultContainer ListMovies(string apiKey, Uri baseUrl, string imdbId);
|
||||||
|
WatcherVersion Version(string apiKey, Uri baseUri);
|
||||||
|
}
|
||||||
|
}
|
80
Ombi.Api.Interfaces/Ombi.Api.Interfaces.csproj
Normal file
80
Ombi.Api.Interfaces/Ombi.Api.Interfaces.csproj
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{95834072-A675-415D-AA8F-877C91623810}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>Ombi.Api.Interfaces</RootNamespace>
|
||||||
|
<AssemblyName>Ombi.Api.Interfaces</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<TargetFrameworkProfile />
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="RestSharp, Version=105.2.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Net.Http" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="IApiRequest.cs" />
|
||||||
|
<Compile Include="ICouchPotatoApi.cs" />
|
||||||
|
<Compile Include="IHeadphonesApi.cs" />
|
||||||
|
<Compile Include="IMusicBrainzApi.cs" />
|
||||||
|
<Compile Include="INetflixApi.cs" />
|
||||||
|
<Compile Include="IPlexApi.cs" />
|
||||||
|
<Compile Include="IPushbulletApi.cs" />
|
||||||
|
<Compile Include="ISlackApi.cs" />
|
||||||
|
<Compile Include="IPushoverApi.cs" />
|
||||||
|
<Compile Include="ISickRageApi.cs" />
|
||||||
|
<Compile Include="ISonarrApi.cs" />
|
||||||
|
<Compile Include="IWatcherApi.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Ombi.Api.Models\Ombi.Api.Models.csproj">
|
||||||
|
<Project>{CB37A5F8-6DFC-4554-99D3-A42B502E4591}</Project>
|
||||||
|
<Name>Ombi.Api.Models</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="app.config" />
|
||||||
|
<None Include="packages.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
38
Ombi.Api.Interfaces/Properties/AssemblyInfo.cs
Normal file
38
Ombi.Api.Interfaces/Properties/AssemblyInfo.cs
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("Ombi.Api.Interfaces")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("Ombi.Api.Interfaces")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2016")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("95834072-a675-415d-aa8f-877c91623810")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||||
|
|
||||||
|
[assembly: AssemblyInformationalVersionAttribute("1.0.0.0")]
|
11
Ombi.Api.Interfaces/app.config
Normal file
11
Ombi.Api.Interfaces/app.config
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<runtime>
|
||||||
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
</assemblyBinding>
|
||||||
|
</runtime>
|
||||||
|
</configuration>
|
4
Ombi.Api.Interfaces/packages.config
Normal file
4
Ombi.Api.Interfaces/packages.config
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="RestSharp" version="105.2.3" targetFramework="net45" />
|
||||||
|
</packages>
|
119
Ombi.Api.Models/Movie/CouchPotatoAdd.cs
Normal file
119
Ombi.Api.Models/Movie/CouchPotatoAdd.cs
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: CouchPotatoAdd.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Movie
|
||||||
|
{
|
||||||
|
public class CouchPotatoAdd
|
||||||
|
{
|
||||||
|
public Movie movie { get; set; }
|
||||||
|
public bool success { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Rating
|
||||||
|
{
|
||||||
|
public List<string> imdb { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Images
|
||||||
|
{
|
||||||
|
public List<string> actors { get; set; }
|
||||||
|
public List<string> backdrop { get; set; }
|
||||||
|
public List<string> backdrop_original { get; set; }
|
||||||
|
public List<object> banner { get; set; }
|
||||||
|
public List<object> clear_art { get; set; }
|
||||||
|
public List<object> disc_art { get; set; }
|
||||||
|
public List<object> extra_fanart { get; set; }
|
||||||
|
public List<object> extra_thumbs { get; set; }
|
||||||
|
public List<object> landscape { get; set; }
|
||||||
|
public List<object> logo { get; set; }
|
||||||
|
public List<string> poster { get; set; }
|
||||||
|
public List<string> poster_original { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Info
|
||||||
|
{
|
||||||
|
public List<string> actor_roles { get; set; }
|
||||||
|
public List<string> actors { get; set; }
|
||||||
|
public List<string> directors { get; set; }
|
||||||
|
public List<string> genres { get; set; }
|
||||||
|
public Images images { get; set; }
|
||||||
|
public string imdb { get; set; }
|
||||||
|
public string mpaa { get; set; }
|
||||||
|
public string original_title { get; set; }
|
||||||
|
public string plot { get; set; }
|
||||||
|
public Rating rating { get; set; }
|
||||||
|
public Release_Date release_date { get; set; }
|
||||||
|
public string released { get; set; }
|
||||||
|
public int runtime { get; set; }
|
||||||
|
public string tagline { get; set; }
|
||||||
|
public List<string> titles { get; set; }
|
||||||
|
public int tmdb_id { get; set; }
|
||||||
|
public string type { get; set; }
|
||||||
|
public bool via_imdb { get; set; }
|
||||||
|
public bool via_tmdb { get; set; }
|
||||||
|
public List<string> writers { get; set; }
|
||||||
|
public int year { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Release_Date
|
||||||
|
{
|
||||||
|
public bool bluray { get; set; }
|
||||||
|
public int dvd { get; set; }
|
||||||
|
public int expires { get; set; }
|
||||||
|
public int theater { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Files
|
||||||
|
{
|
||||||
|
public List<string> image_poster { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Identifiers
|
||||||
|
{
|
||||||
|
public string imdb { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Movie
|
||||||
|
{
|
||||||
|
public string _id { get; set; }
|
||||||
|
public string _rev { get; set; }
|
||||||
|
public string _t { get; set; }
|
||||||
|
public object category_id { get; set; }
|
||||||
|
public Files files { get; set; }
|
||||||
|
public Identifiers identifiers { get; set; }
|
||||||
|
public Info info { get; set; }
|
||||||
|
public int last_edit { get; set; }
|
||||||
|
public string profile_id { get; set; }
|
||||||
|
public List<object> releases { get; set; }
|
||||||
|
public string status { get; set; }
|
||||||
|
public List<object> tags { get; set; }
|
||||||
|
public string title { get; set; }
|
||||||
|
public string type { get; set; }
|
||||||
|
}
|
||||||
|
}
|
39
Ombi.Api.Models/Movie/CouchPotatoApiKey.cs
Normal file
39
Ombi.Api.Models/Movie/CouchPotatoApiKey.cs
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: CouchPotatoApiKey.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Movie
|
||||||
|
{
|
||||||
|
public class CouchPotatoApiKey
|
||||||
|
{
|
||||||
|
[JsonProperty("success")]
|
||||||
|
public bool success { get; set; }
|
||||||
|
[JsonProperty("api_key")]
|
||||||
|
public string ApiKey { get; set; }
|
||||||
|
}
|
||||||
|
}
|
12
Ombi.Api.Models/Movie/CouchPotatoMovies.cs
Normal file
12
Ombi.Api.Models/Movie/CouchPotatoMovies.cs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Movie
|
||||||
|
{
|
||||||
|
public class CouchPotatoMovies
|
||||||
|
{
|
||||||
|
public List<Movie> movies { get; set; }
|
||||||
|
public int total { get; set; }
|
||||||
|
public bool success { get; set; }
|
||||||
|
public bool empty { get; set; }
|
||||||
|
}
|
||||||
|
}
|
56
Ombi.Api.Models/Movie/CouchPotatoProfiles.cs
Normal file
56
Ombi.Api.Models/Movie/CouchPotatoProfiles.cs
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: CouchPotatoProfiles.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Movie
|
||||||
|
{
|
||||||
|
public class ProfileList
|
||||||
|
{
|
||||||
|
public bool core { get; set; }
|
||||||
|
public bool hide { get; set; }
|
||||||
|
public string _rev { get; set; }
|
||||||
|
public List<bool> finish { get; set; }
|
||||||
|
public List<string> qualities { get; set; }
|
||||||
|
public string _id { get; set; }
|
||||||
|
public string _t { get; set; }
|
||||||
|
public string label { get; set; }
|
||||||
|
public int minimum_score { get; set; }
|
||||||
|
public List<int> stop_after { get; set; }
|
||||||
|
public List<object> wait_for { get; set; }
|
||||||
|
public int order { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "3d")]
|
||||||
|
public List<object> threeD { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CouchPotatoProfiles
|
||||||
|
{
|
||||||
|
public List<ProfileList> list { get; set; }
|
||||||
|
public bool success { get; set; }
|
||||||
|
}
|
||||||
|
}
|
7
Ombi.Api.Models/Movie/CouchPotatoStatus.cs
Normal file
7
Ombi.Api.Models/Movie/CouchPotatoStatus.cs
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
namespace Ombi.Api.Models.Movie
|
||||||
|
{
|
||||||
|
public class CouchPotatoStatus
|
||||||
|
{
|
||||||
|
public bool success { get; set; }
|
||||||
|
}
|
||||||
|
}
|
45
Ombi.Api.Models/Music/HeadphonesAlbumSearchResult.cs
Normal file
45
Ombi.Api.Models/Music/HeadphonesAlbumSearchResult.cs
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: HeadphonesAlbumSearchResult.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.Music
|
||||||
|
{
|
||||||
|
public class HeadphonesAlbumSearchResult
|
||||||
|
{
|
||||||
|
public string rgid { get; set; }
|
||||||
|
public string albumurl { get; set; }
|
||||||
|
public string tracks { get; set; }
|
||||||
|
public string date { get; set; }
|
||||||
|
public string id { get; set; } // Artist ID
|
||||||
|
public string rgtype { get; set; }
|
||||||
|
public string title { get; set; }
|
||||||
|
public string url { get; set; }
|
||||||
|
public string country { get; set; }
|
||||||
|
public string albumid { get; set; } // AlbumId
|
||||||
|
public int score { get; set; }
|
||||||
|
public string uniquename { get; set; }
|
||||||
|
public string formats { get; set; }
|
||||||
|
}
|
||||||
|
}
|
37
Ombi.Api.Models/Music/HeadphonesArtistSearchResult.cs
Normal file
37
Ombi.Api.Models/Music/HeadphonesArtistSearchResult.cs
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: HeadphonesSearchResult.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.Music
|
||||||
|
{
|
||||||
|
public class HeadphonesArtistSearchResult
|
||||||
|
{
|
||||||
|
public string url { get; set; } // MusicBrainz url
|
||||||
|
public int score { get; set; } // Search Match score?
|
||||||
|
public string name { get; set; } // Artist Name
|
||||||
|
public string uniquename { get; set; } // Artist Unique Name
|
||||||
|
public string id { get; set; } // Artist Unique ID for MusicBrainz
|
||||||
|
}
|
||||||
|
}
|
49
Ombi.Api.Models/Music/HeadphonesGetIndex.cs
Normal file
49
Ombi.Api.Models/Music/HeadphonesGetIndex.cs
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: HeadphonesGetIndex.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.Music
|
||||||
|
{
|
||||||
|
public class HeadphonesGetIndex
|
||||||
|
{
|
||||||
|
public string Status { get; set; }
|
||||||
|
public string ThumbURL { get; set; }
|
||||||
|
public string DateAdded { get; set; }
|
||||||
|
public string MetaCritic { get; set; }
|
||||||
|
public int? TotalTracks { get; set; }
|
||||||
|
public object Type { get; set; }
|
||||||
|
public int? IncludeExtras { get; set; }
|
||||||
|
public string ArtistName { get; set; }
|
||||||
|
public string LastUpdated { get; set; }
|
||||||
|
public string ReleaseDate { get; set; }
|
||||||
|
public string AlbumID { get; set; }
|
||||||
|
public string ArtistID { get; set; }
|
||||||
|
public string ArtworkURL { get; set; }
|
||||||
|
public string Extras { get; set; }
|
||||||
|
public int? HaveTracks { get; set; }
|
||||||
|
public string LatestAlbum { get; set; }
|
||||||
|
public string ArtistSortName { get; set; }
|
||||||
|
}
|
||||||
|
}
|
37
Ombi.Api.Models/Music/HeadphonesVersion.cs
Normal file
37
Ombi.Api.Models/Music/HeadphonesVersion.cs
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: HeadphonesVersion.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.Music
|
||||||
|
{
|
||||||
|
public class HeadphonesVersion
|
||||||
|
{
|
||||||
|
public string install_type { get; set; }
|
||||||
|
public object current_version { get; set; }
|
||||||
|
public string git_path { get; set; }
|
||||||
|
public string latest_version { get; set; }
|
||||||
|
public int commits_behind { get; set; }
|
||||||
|
}
|
||||||
|
}
|
56
Ombi.Api.Models/Music/MusicBrainzCoverArt.cs
Normal file
56
Ombi.Api.Models/Music/MusicBrainzCoverArt.cs
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: MusicBrainzCoverArt.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Music
|
||||||
|
{
|
||||||
|
public class Thumbnails
|
||||||
|
{
|
||||||
|
public string large { get; set; }
|
||||||
|
public string small { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Image
|
||||||
|
{
|
||||||
|
public List<string> types { get; set; }
|
||||||
|
public bool front { get; set; }
|
||||||
|
public bool back { get; set; }
|
||||||
|
public int edit { get; set; }
|
||||||
|
public string image { get; set; }
|
||||||
|
public string comment { get; set; }
|
||||||
|
public bool approved { get; set; }
|
||||||
|
public string id { get; set; }
|
||||||
|
public Thumbnails thumbnails { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MusicBrainzCoverArt
|
||||||
|
{
|
||||||
|
public List<Image> images { get; set; }
|
||||||
|
public string release { get; set; }
|
||||||
|
}
|
||||||
|
}
|
68
Ombi.Api.Models/Music/MusicBrainzReleaseInfo.cs
Normal file
68
Ombi.Api.Models/Music/MusicBrainzReleaseInfo.cs
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: MusicBrainzReleaseInfo.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Music
|
||||||
|
{
|
||||||
|
public class CoverArtArchive
|
||||||
|
{
|
||||||
|
public int count { get; set; }
|
||||||
|
public bool back { get; set; }
|
||||||
|
public bool artwork { get; set; }
|
||||||
|
public bool front { get; set; }
|
||||||
|
public bool darkened { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class MusicBrainzReleaseInfo
|
||||||
|
{
|
||||||
|
[JsonProperty(PropertyName = "artist-credit")]
|
||||||
|
public List<ArtistCredit> ArtistCredits { get; set; }
|
||||||
|
public string date { get; set; }
|
||||||
|
public string status { get; set; }
|
||||||
|
public string asin { get; set; }
|
||||||
|
public string title { get; set; }
|
||||||
|
public string quality { get; set; }
|
||||||
|
public string country { get; set; }
|
||||||
|
public string packaging { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty(PropertyName = "text-representation")]
|
||||||
|
public TextRepresentation TextRepresentation { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty(PropertyName = "cover-art-archive")]
|
||||||
|
public CoverArtArchive CoverArtArchive { get; set; }
|
||||||
|
public string barcode { get; set; }
|
||||||
|
public string disambiguation { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty(PropertyName = "release-events")]
|
||||||
|
public List<ReleaseEvent> ReleaseEvents { get; set; }
|
||||||
|
public string id { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
154
Ombi.Api.Models/Music/MusicBrainzSearchResults.cs
Normal file
154
Ombi.Api.Models/Music/MusicBrainzSearchResults.cs
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: MusicBrainzSearchResults.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Music
|
||||||
|
{
|
||||||
|
public class TextRepresentation
|
||||||
|
{
|
||||||
|
public string language { get; set; }
|
||||||
|
public string script { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Alias
|
||||||
|
{
|
||||||
|
[JsonProperty(PropertyName = "sort-name")]
|
||||||
|
public string SortName { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
public object locale { get; set; }
|
||||||
|
public string type { get; set; }
|
||||||
|
public object primary { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "begin-date")]
|
||||||
|
public object BeginDate { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "end-date")]
|
||||||
|
public object EndDate { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Artist
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "sort-date")]
|
||||||
|
public string SortName { get; set; }
|
||||||
|
public string disambiguation { get; set; }
|
||||||
|
public List<Alias> aliases { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ArtistCredit
|
||||||
|
{
|
||||||
|
public Artist artist { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
public string joinphrase { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReleaseGroup
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "primary-type")]
|
||||||
|
public string PrimaryType { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "secondary-types")]
|
||||||
|
public List<string> SecondaryTypes { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Area
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "sort-name")]
|
||||||
|
public string SortName { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "iso-3166-1-codes")]
|
||||||
|
public List<string> ISO31661Codes { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReleaseEvent
|
||||||
|
{
|
||||||
|
public string date { get; set; }
|
||||||
|
public Area area { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Label
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class LabelInfo
|
||||||
|
{
|
||||||
|
[JsonProperty(PropertyName = "catalog-number")]
|
||||||
|
public string CatalogNumber { get; set; }
|
||||||
|
public Label label { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Medium
|
||||||
|
{
|
||||||
|
public string format { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "disc-count")]
|
||||||
|
public int DiscCount { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "catalog-number")]
|
||||||
|
public int CatalogNumber { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Release
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string score { get; set; }
|
||||||
|
public int count { get; set; }
|
||||||
|
public string title { get; set; }
|
||||||
|
public string status { get; set; }
|
||||||
|
public string disambiguation { get; set; }
|
||||||
|
public string packaging { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty(PropertyName = "text-representation")]
|
||||||
|
public TextRepresentation TextRepresentation { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "artist-credit")]
|
||||||
|
public List<ArtistCredit> ArtistCredit { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "release-group")]
|
||||||
|
public ReleaseGroup ReleaseGroup { get; set; }
|
||||||
|
public string date { get; set; }
|
||||||
|
public string country { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "release-events")]
|
||||||
|
public List<ReleaseEvent> ReleaseEvents { get; set; }
|
||||||
|
public string barcode { get; set; }
|
||||||
|
public string asin { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "label-info")]
|
||||||
|
public List<LabelInfo> LabelInfo { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "track-count")]
|
||||||
|
public int TrackCount { get; set; }
|
||||||
|
public List<Medium> media { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MusicBrainzSearchResults
|
||||||
|
{
|
||||||
|
public string created { get; set; }
|
||||||
|
public int count { get; set; }
|
||||||
|
public int offset { get; set; }
|
||||||
|
public List<Release> releases { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
62
Ombi.Api.Models/Netflix/NetflixMovieResult.cs
Normal file
62
Ombi.Api.Models/Netflix/NetflixMovieResult.cs
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2017 Jamie Rees
|
||||||
|
// File: NetflixMovieResult.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Netflix
|
||||||
|
{
|
||||||
|
public class NetflixMovieResult
|
||||||
|
{
|
||||||
|
[JsonProperty(PropertyName= "unit")]
|
||||||
|
public int Unit { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty(PropertyName = "show_id")]
|
||||||
|
public int ShowId { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty(PropertyName = "show_title")]
|
||||||
|
public string Title { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty(PropertyName = "release_year")]
|
||||||
|
public string ReleaseYear { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "rating")]
|
||||||
|
public string Rating { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "Category")]
|
||||||
|
public string Category { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "show_cast")]
|
||||||
|
public string ShowCast { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "director")]
|
||||||
|
public string Director { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "summary")]
|
||||||
|
public string Summary { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "poster")]
|
||||||
|
public string Poster { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "mediatype")]
|
||||||
|
public string Mediatype { get; set; }
|
||||||
|
[JsonProperty(PropertyName = "runtime")]
|
||||||
|
public string Runtime { get; set; }
|
||||||
|
}
|
||||||
|
}
|
37
Ombi.Api.Models/Notifications/PushbulletPush.cs
Normal file
37
Ombi.Api.Models/Notifications/PushbulletPush.cs
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: PushbulletPush.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Notifications
|
||||||
|
{
|
||||||
|
public class PushbulletPush
|
||||||
|
{
|
||||||
|
public string body { get; set; }
|
||||||
|
public string title { get; set; }
|
||||||
|
public string type { get; set; }
|
||||||
|
public string device_iden { get; set; }
|
||||||
|
}
|
||||||
|
}
|
48
Ombi.Api.Models/Notifications/PushbulletResponse.cs
Normal file
48
Ombi.Api.Models/Notifications/PushbulletResponse.cs
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: PushbulletResponse.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.Notifications
|
||||||
|
{
|
||||||
|
public class PushbulletResponse
|
||||||
|
{
|
||||||
|
public bool active { get; set; }
|
||||||
|
public string iden { get; set; }
|
||||||
|
public double created { get; set; }
|
||||||
|
public double modified { get; set; }
|
||||||
|
public string type { get; set; }
|
||||||
|
public bool dismissed { get; set; }
|
||||||
|
public string direction { get; set; }
|
||||||
|
public string sender_iden { get; set; }
|
||||||
|
public string sender_email { get; set; }
|
||||||
|
public string sender_email_normalized { get; set; }
|
||||||
|
public string sender_name { get; set; }
|
||||||
|
public string receiver_iden { get; set; }
|
||||||
|
public string receiver_email { get; set; }
|
||||||
|
public string receiver_email_normalized { get; set; }
|
||||||
|
public string title { get; set; }
|
||||||
|
public string body { get; set; }
|
||||||
|
}
|
||||||
|
}
|
34
Ombi.Api.Models/Notifications/PushoverResponse.cs
Normal file
34
Ombi.Api.Models/Notifications/PushoverResponse.cs
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: PushoverResponse.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.Notifications
|
||||||
|
{
|
||||||
|
public class PushoverResponse
|
||||||
|
{
|
||||||
|
public int status { get; set; }
|
||||||
|
public string request { get; set; }
|
||||||
|
}
|
||||||
|
}
|
57
Ombi.Api.Models/Notifications/SlackNotificationBody.cs
Normal file
57
Ombi.Api.Models/Notifications/SlackNotificationBody.cs
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SlackNotificationBody.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Notifications
|
||||||
|
{
|
||||||
|
public class SlackNotificationBody
|
||||||
|
{
|
||||||
|
[JsonConstructor]
|
||||||
|
public SlackNotificationBody()
|
||||||
|
{
|
||||||
|
username = "Ombi";
|
||||||
|
}
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
private string _username;
|
||||||
|
public string username
|
||||||
|
{
|
||||||
|
get { return _username; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(value))
|
||||||
|
_username = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public string channel { get; set; }
|
||||||
|
public string text { get; set; }
|
||||||
|
|
||||||
|
public string icon_url { get; set; }
|
||||||
|
public string icon_emoji { get; set; }
|
||||||
|
}
|
||||||
|
}
|
134
Ombi.Api.Models/Ombi.Api.Models.csproj
Normal file
134
Ombi.Api.Models/Ombi.Api.Models.csproj
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{CB37A5F8-6DFC-4554-99D3-A42B502E4591}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>Ombi.Api.Models</RootNamespace>
|
||||||
|
<AssemblyName>Ombi.Api.Models</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<TargetFrameworkProfile />
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RestSharp, Version=105.2.3.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RestSharp.105.2.3\lib\net45\RestSharp.dll</HintPath>
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Net.Http" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Movie\CouchPotatoAdd.cs" />
|
||||||
|
<Compile Include="Movie\CouchPotatoMovies.cs" />
|
||||||
|
<Compile Include="Movie\CouchPotatoProfiles.cs" />
|
||||||
|
<Compile Include="Movie\CouchPotatoStatus.cs" />
|
||||||
|
<Compile Include="Movie\CouchPotatoApiKey.cs" />
|
||||||
|
<Compile Include="Music\HeadphonesAlbumSearchResult.cs" />
|
||||||
|
<Compile Include="Music\HeadphonesArtistSearchResult.cs" />
|
||||||
|
<Compile Include="Music\HeadphonesGetIndex.cs" />
|
||||||
|
<Compile Include="Music\HeadphonesVersion.cs" />
|
||||||
|
<Compile Include="Music\MusicBrainzCoverArt.cs" />
|
||||||
|
<Compile Include="Music\MusicBrainzReleaseInfo.cs" />
|
||||||
|
<Compile Include="Music\MusicBrainzSearchResults.cs" />
|
||||||
|
<Compile Include="Netflix\NetflixMovieResult.cs" />
|
||||||
|
<Compile Include="Notifications\PushbulletPush.cs" />
|
||||||
|
<Compile Include="Notifications\PushbulletResponse.cs" />
|
||||||
|
<Compile Include="Notifications\PushoverResponse.cs" />
|
||||||
|
<Compile Include="Notifications\SlackNotificationBody.cs" />
|
||||||
|
<Compile Include="Plex\PlexAccount.cs" />
|
||||||
|
<Compile Include="Plex\PlexAuthentication.cs" />
|
||||||
|
<Compile Include="Plex\PlexEpisodeMetadata.cs" />
|
||||||
|
<Compile Include="Plex\PlexError.cs" />
|
||||||
|
<Compile Include="Plex\PlexFriends.cs" />
|
||||||
|
<Compile Include="Plex\PlexLibraries.cs" />
|
||||||
|
<Compile Include="Plex\PlexMetadata.cs" />
|
||||||
|
<Compile Include="Plex\PlexSearch.cs" />
|
||||||
|
<Compile Include="Plex\PlexServer.cs" />
|
||||||
|
<Compile Include="Plex\PlexStatus.cs" />
|
||||||
|
<Compile Include="Plex\PlexMediaType.cs" />
|
||||||
|
<Compile Include="Plex\PlexUserRequest.cs" />
|
||||||
|
<Compile Include="Plex\RecentlyAddedModelOld.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="SickRage\SickRageBase.cs" />
|
||||||
|
<Compile Include="SickRage\SickrageShows.cs" />
|
||||||
|
<Compile Include="SickRage\SickRagePing.cs" />
|
||||||
|
<Compile Include="SickRage\SickRageSeasonList.cs" />
|
||||||
|
<Compile Include="SickRage\SickRageShowInformation.cs" />
|
||||||
|
<Compile Include="SickRage\SickRageStatus.cs" />
|
||||||
|
<Compile Include="SickRage\SickRageTvAdd.cs" />
|
||||||
|
<Compile Include="Sonarr\SonarrAddEpisodeBody.cs" />
|
||||||
|
<Compile Include="Sonarr\SonarrAddEpisodeResult.cs" />
|
||||||
|
<Compile Include="Sonarr\SonarrAddSeries.cs" />
|
||||||
|
<Compile Include="Sonarr\SonarrAllSeries.cs" />
|
||||||
|
<Compile Include="Sonarr\SonarrEpisode.cs" />
|
||||||
|
<Compile Include="Sonarr\SonarrEpisodes.cs" />
|
||||||
|
<Compile Include="Sonarr\SonarrError.cs" />
|
||||||
|
<Compile Include="Sonarr\SonarrProfile.cs" />
|
||||||
|
<Compile Include="Sonarr\SonarrSearchCommand.cs" />
|
||||||
|
<Compile Include="Sonarr\SonarrSeasonSearchResult.cs" />
|
||||||
|
<Compile Include="Sonarr\SonarrSeriesSearchResult.cs" />
|
||||||
|
<Compile Include="Sonarr\SystemStatus.cs" />
|
||||||
|
<Compile Include="Tv\Authentication.cs" />
|
||||||
|
<Compile Include="Tv\TvMazeEpisodes.cs" />
|
||||||
|
<Compile Include="Tv\TvMazeSearch.cs" />
|
||||||
|
<Compile Include="Tv\TvMazeSeasons.cs" />
|
||||||
|
<Compile Include="Tv\TVMazeShow.cs" />
|
||||||
|
<Compile Include="Tv\TvSearchResult.cs" />
|
||||||
|
<Compile Include="Tv\TvShow.cs" />
|
||||||
|
<Compile Include="Tv\TvShowImages.cs" />
|
||||||
|
<Compile Include="Watcher\WatcherAddMovieResult.cs" />
|
||||||
|
<Compile Include="Watcher\WatcherListStatusResult.cs" />
|
||||||
|
<Compile Include="Watcher\WatcherVersion.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="app.config" />
|
||||||
|
<None Include="packages.config">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Ombi.Helpers\Ombi.Helpers.csproj">
|
||||||
|
<Project>{1252336D-42A3-482A-804C-836E60173DFA}</Project>
|
||||||
|
<Name>Ombi.Helpers</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
17
Ombi.Api.Models/Plex/PlexAccount.cs
Normal file
17
Ombi.Api.Models/Plex/PlexAccount.cs
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Plex
|
||||||
|
{
|
||||||
|
[XmlRoot(ElementName = "user")]
|
||||||
|
public class PlexAccount
|
||||||
|
{
|
||||||
|
[XmlAttribute(AttributeName = "id")]
|
||||||
|
public string Id { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "username")]
|
||||||
|
public string Username { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "email")]
|
||||||
|
public string Email { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "authenticationToken")]
|
||||||
|
public string AuthToken { get; set; }
|
||||||
|
}
|
||||||
|
}
|
64
Ombi.Api.Models/Plex/PlexAuthentication.cs
Normal file
64
Ombi.Api.Models/Plex/PlexAuthentication.cs
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: PlexAuthentication.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Plex
|
||||||
|
{
|
||||||
|
public class PlexAuthentication
|
||||||
|
{
|
||||||
|
public User user { get; set; }
|
||||||
|
}
|
||||||
|
public class Subscription
|
||||||
|
{
|
||||||
|
public bool active { get; set; }
|
||||||
|
public string status { get; set; }
|
||||||
|
public object plan { get; set; }
|
||||||
|
public object features { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Roles
|
||||||
|
{
|
||||||
|
public List<object> roles { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class User
|
||||||
|
{
|
||||||
|
public string email { get; set; }
|
||||||
|
public string uuid { get; set; }
|
||||||
|
public string joined_at { get; set; }
|
||||||
|
public string username { get; set; }
|
||||||
|
public string title { get; set; }
|
||||||
|
public string authentication_token { get; set; }
|
||||||
|
public Subscription subscription { get; set; }
|
||||||
|
public Roles roles { get; set; }
|
||||||
|
public List<string> entitlements { get; set; }
|
||||||
|
public object confirmed_at { get; set; }
|
||||||
|
public int forum_id { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
82
Ombi.Api.Models/Plex/PlexEpisodeMetadata.cs
Normal file
82
Ombi.Api.Models/Plex/PlexEpisodeMetadata.cs
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: PlexEpisodeMetadata.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Plex
|
||||||
|
{
|
||||||
|
[XmlRoot(ElementName = "MediaContainer")]
|
||||||
|
public class PlexEpisodeMetadata
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName = "Video")]
|
||||||
|
public List<Video> Video { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "size")]
|
||||||
|
public string Size { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "allowSync")]
|
||||||
|
public string AllowSync { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "art")]
|
||||||
|
public string Art { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "banner")]
|
||||||
|
public string Banner { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "identifier")]
|
||||||
|
public string Identifier { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "key")]
|
||||||
|
public string Key { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "librarySectionID")]
|
||||||
|
public string LibrarySectionID { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "librarySectionTitle")]
|
||||||
|
public string LibrarySectionTitle { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "librarySectionUUID")]
|
||||||
|
public string LibrarySectionUUID { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "mediaTagPrefix")]
|
||||||
|
public string MediaTagPrefix { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "mediaTagVersion")]
|
||||||
|
public string MediaTagVersion { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "mixedParents")]
|
||||||
|
public string MixedParents { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "nocache")]
|
||||||
|
public string Nocache { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "parentIndex")]
|
||||||
|
public string ParentIndex { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "parentTitle")]
|
||||||
|
public string ParentTitle { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "parentYear")]
|
||||||
|
public string ParentYear { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "theme")]
|
||||||
|
public string Theme { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "title1")]
|
||||||
|
public string Title1 { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "title2")]
|
||||||
|
public string Title2 { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "viewGroup")]
|
||||||
|
public string ViewGroup { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "viewMode")]
|
||||||
|
public string ViewMode { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
39
Ombi.Api.Models/Plex/PlexError.cs
Normal file
39
Ombi.Api.Models/Plex/PlexError.cs
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: PlexError.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Plex
|
||||||
|
{
|
||||||
|
[XmlRoot(ElementName = "errors")]
|
||||||
|
public class PlexError
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName = "error")]
|
||||||
|
public string Error { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
87
Ombi.Api.Models/Plex/PlexFriends.cs
Normal file
87
Ombi.Api.Models/Plex/PlexFriends.cs
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: PlexFriends.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Plex
|
||||||
|
{
|
||||||
|
[XmlRoot(ElementName = "Server")]
|
||||||
|
public class Server
|
||||||
|
{
|
||||||
|
[XmlAttribute(AttributeName = "id")]
|
||||||
|
public string Id { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "serverId")]
|
||||||
|
public string ServerId { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "machineIdentifier")]
|
||||||
|
public string MachineIdentifier { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "name")]
|
||||||
|
public string Name { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "lastSeenAt")]
|
||||||
|
public string LastSeenAt { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "numLibraries")]
|
||||||
|
public string NumLibraries { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "owned")]
|
||||||
|
public string Owned { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "User")]
|
||||||
|
public class UserFriends
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName = "Server")]
|
||||||
|
public Server Server { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "id")]
|
||||||
|
public string Id { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "title")]
|
||||||
|
public string Title { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "username")]
|
||||||
|
public string Username { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "email")]
|
||||||
|
public string Email { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "recommendationsPlaylistId")]
|
||||||
|
public string RecommendationsPlaylistId { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "thumb")]
|
||||||
|
public string Thumb { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "MediaContainer")]
|
||||||
|
public class PlexFriends
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName = "User")]
|
||||||
|
public UserFriends[] User { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "friendlyName")]
|
||||||
|
public string FriendlyName { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "identifier")]
|
||||||
|
public string Identifier { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "machineIdentifier")]
|
||||||
|
public string MachineIdentifier { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "totalSize")]
|
||||||
|
public string TotalSize { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "size")]
|
||||||
|
public string Size { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
22
Ombi.Api.Models/Plex/PlexLibraries.cs
Normal file
22
Ombi.Api.Models/Plex/PlexLibraries.cs
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Plex
|
||||||
|
{
|
||||||
|
[XmlRoot(ElementName = "MediaContainer")]
|
||||||
|
public class PlexLibraries
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName = "Directory")]
|
||||||
|
public List<Directory> Directories { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "Location")]
|
||||||
|
public partial class Location
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName = "id")]
|
||||||
|
public int id { get; set; }
|
||||||
|
[XmlElement(ElementName = "path")]
|
||||||
|
public string path { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
#region Copyright
|
#region Copyright
|
||||||
// /************************************************************************
|
// /************************************************************************
|
||||||
// Copyright (c) 2017 Jamie Rees
|
// Copyright (c) 2016 Jamie Rees
|
||||||
// File: PlexContentCacher.cs
|
// File: PlexType.cs
|
||||||
// Created By: Jamie Rees
|
// Created By: Jamie Rees
|
||||||
//
|
//
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining
|
// Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
@ -24,14 +24,12 @@
|
||||||
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
// ************************************************************************/
|
// ************************************************************************/
|
||||||
#endregion
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.Plex
|
||||||
|
|
||||||
namespace Ombi.Schedule.Jobs
|
|
||||||
{
|
{
|
||||||
public enum PlexMediaType
|
public enum PlexMediaType
|
||||||
{
|
{
|
||||||
Movie = 0,
|
Movie,
|
||||||
Show = 1,
|
Show,
|
||||||
Episode = 2,
|
Artist
|
||||||
}
|
}
|
||||||
}
|
}
|
83
Ombi.Api.Models/Plex/PlexMetadata.cs
Normal file
83
Ombi.Api.Models/Plex/PlexMetadata.cs
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: PlexMetadata.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Plex
|
||||||
|
{
|
||||||
|
[XmlRoot(ElementName = "MediaContainer")]
|
||||||
|
public class PlexMetadata
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName= "Video")]
|
||||||
|
public Video Video { get; set; }
|
||||||
|
[XmlElement(ElementName = "Directory")]
|
||||||
|
public Directory1 Directory { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "size")]
|
||||||
|
public string Size { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "allowSync")]
|
||||||
|
public string AllowSync { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "identifier")]
|
||||||
|
public string Identifier { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "librarySectionID")]
|
||||||
|
public string LibrarySectionID { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "librarySectionTitle")]
|
||||||
|
public string LibrarySectionTitle { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "librarySectionUUID")]
|
||||||
|
public string LibrarySectionUUID { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "mediaTagPrefix")]
|
||||||
|
public string MediaTagPrefix { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "mediaTagVersion")]
|
||||||
|
public string MediaTagVersion { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "MediaContainer")]
|
||||||
|
public class PlexSeasonMetadata
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName = "Video")]
|
||||||
|
public Video Video { get; set; }
|
||||||
|
[XmlElement(ElementName = "Directory")]
|
||||||
|
public List<Directory1> Directory { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "size")]
|
||||||
|
public string Size { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "allowSync")]
|
||||||
|
public string AllowSync { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "identifier")]
|
||||||
|
public string Identifier { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "librarySectionID")]
|
||||||
|
public string LibrarySectionID { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "librarySectionTitle")]
|
||||||
|
public string LibrarySectionTitle { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "librarySectionUUID")]
|
||||||
|
public string LibrarySectionUUID { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "mediaTagPrefix")]
|
||||||
|
public string MediaTagPrefix { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "mediaTagVersion")]
|
||||||
|
public string MediaTagVersion { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
344
Ombi.Api.Models/Plex/PlexSearch.cs
Normal file
344
Ombi.Api.Models/Plex/PlexSearch.cs
Normal file
|
@ -0,0 +1,344 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: PlexSearch.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Plex
|
||||||
|
{
|
||||||
|
[XmlRoot(ElementName = "Part")]
|
||||||
|
public class Part
|
||||||
|
{
|
||||||
|
[XmlAttribute(AttributeName = "id")]
|
||||||
|
public string Id { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "key")]
|
||||||
|
public string Key { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "duration")]
|
||||||
|
public string Duration { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "file")]
|
||||||
|
public string File { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "size")]
|
||||||
|
public string Size { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "audioProfile")]
|
||||||
|
public string AudioProfile { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "container")]
|
||||||
|
public string Container { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "videoProfile")]
|
||||||
|
public string VideoProfile { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "has64bitOffsets")]
|
||||||
|
public string Has64bitOffsets { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "hasChapterTextStream")]
|
||||||
|
public string HasChapterTextStream { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "optimizedForStreaming")]
|
||||||
|
public string OptimizedForStreaming { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "Media")]
|
||||||
|
public class Media
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName = "Part")]
|
||||||
|
public Part Part { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "videoResolution")]
|
||||||
|
public string VideoResolution { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "id")]
|
||||||
|
public string Id { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "duration")]
|
||||||
|
public string Duration { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "bitrate")]
|
||||||
|
public string Bitrate { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "width")]
|
||||||
|
public string Width { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "height")]
|
||||||
|
public string Height { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "aspectRatio")]
|
||||||
|
public string AspectRatio { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "audioChannels")]
|
||||||
|
public string AudioChannels { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "audioCodec")]
|
||||||
|
public string AudioCodec { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "videoCodec")]
|
||||||
|
public string VideoCodec { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "container")]
|
||||||
|
public string Container { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "videoFrameRate")]
|
||||||
|
public string VideoFrameRate { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "audioProfile")]
|
||||||
|
public string AudioProfile { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "videoProfile")]
|
||||||
|
public string VideoProfile { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "optimizedForStreaming")]
|
||||||
|
public string OptimizedForStreaming { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "has64bitOffsets")]
|
||||||
|
public string Has64bitOffsets { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "Genre")]
|
||||||
|
public class Genre
|
||||||
|
{
|
||||||
|
[XmlAttribute(AttributeName = "tag")]
|
||||||
|
public string Tag { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "Writer")]
|
||||||
|
public class Writer
|
||||||
|
{
|
||||||
|
[XmlAttribute(AttributeName = "tag")]
|
||||||
|
public string Tag { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "Director")]
|
||||||
|
public class Director
|
||||||
|
{
|
||||||
|
[XmlAttribute(AttributeName = "tag")]
|
||||||
|
public string Tag { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "Country")]
|
||||||
|
public class Country
|
||||||
|
{
|
||||||
|
[XmlAttribute(AttributeName = "tag")]
|
||||||
|
public string Tag { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "Role")]
|
||||||
|
public class Role
|
||||||
|
{
|
||||||
|
[XmlAttribute(AttributeName = "tag")]
|
||||||
|
public string Tag { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "Video")]
|
||||||
|
public class Video
|
||||||
|
{
|
||||||
|
public string ProviderId { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "guid")]
|
||||||
|
public string Guid { get; set; }
|
||||||
|
[XmlElement(ElementName = "Media")]
|
||||||
|
public List<Media> Media { get; set; }
|
||||||
|
[XmlElement(ElementName = "Genre")]
|
||||||
|
public List<Genre> Genre { get; set; }
|
||||||
|
[XmlElement(ElementName = "Writer")]
|
||||||
|
public List<Writer> Writer { get; set; }
|
||||||
|
[XmlElement(ElementName = "Director")]
|
||||||
|
public Director Director { get; set; }
|
||||||
|
[XmlElement(ElementName = "Country")]
|
||||||
|
public Country Country { get; set; }
|
||||||
|
[XmlElement(ElementName = "Role")]
|
||||||
|
public List<Role> Role { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "allowSync")]
|
||||||
|
public string AllowSync { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "librarySectionID")]
|
||||||
|
public string LibrarySectionID { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "librarySectionTitle")]
|
||||||
|
public string LibrarySectionTitle { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "librarySectionUUID")]
|
||||||
|
public string LibrarySectionUUID { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "personal")]
|
||||||
|
public string Personal { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "sourceTitle")]
|
||||||
|
public string SourceTitle { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "ratingKey")]
|
||||||
|
public string RatingKey { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "key")]
|
||||||
|
public string Key { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "studio")]
|
||||||
|
public string Studio { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "type")]
|
||||||
|
public string Type { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "title")]
|
||||||
|
public string Title { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "contentRating")]
|
||||||
|
public string ContentRating { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "summary")]
|
||||||
|
public string Summary { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "rating")]
|
||||||
|
public string Rating { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "audienceRating")]
|
||||||
|
public string AudienceRating { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "year")]
|
||||||
|
public string Year { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "tagline")]
|
||||||
|
public string Tagline { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "thumb")]
|
||||||
|
public string Thumb { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "art")]
|
||||||
|
public string Art { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "duration")]
|
||||||
|
public string Duration { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "originallyAvailableAt")]
|
||||||
|
public string OriginallyAvailableAt { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "addedAt")]
|
||||||
|
public string AddedAt { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "updatedAt")]
|
||||||
|
public string UpdatedAt { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "audienceRatingImage")]
|
||||||
|
public string AudienceRatingImage { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "chapterSource")]
|
||||||
|
public string ChapterSource { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "ratingImage")]
|
||||||
|
public string RatingImage { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "titleSort")]
|
||||||
|
public string TitleSort { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "parentRatingKey")]
|
||||||
|
public string ParentRatingKey { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "grandparentRatingKey")]
|
||||||
|
public string GrandparentRatingKey { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "grandparentKey")]
|
||||||
|
public string GrandparentKey { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "parentKey")]
|
||||||
|
public string ParentKey { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "grandparentTitle")]
|
||||||
|
public string GrandparentTitle { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "index")]
|
||||||
|
public string Index { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "parentIndex")]
|
||||||
|
public string ParentIndex { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "parentThumb")]
|
||||||
|
public string ParentThumb { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "grandparentThumb")]
|
||||||
|
public string GrandparentThumb { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "grandparentArt")]
|
||||||
|
public string GrandparentArt { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "viewCount")]
|
||||||
|
public string ViewCount { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "lastViewedAt")]
|
||||||
|
public string LastViewedAt { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "grandparentTheme")]
|
||||||
|
public string GrandparentTheme { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "Provider")]
|
||||||
|
public class Provider
|
||||||
|
{
|
||||||
|
[XmlAttribute(AttributeName = "key")]
|
||||||
|
public string Key { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "title")]
|
||||||
|
public string Title { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "type")]
|
||||||
|
public string Type { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "Directory")]
|
||||||
|
public class Directory1
|
||||||
|
{
|
||||||
|
public Directory1()
|
||||||
|
{
|
||||||
|
Seasons = new List<Directory1>();
|
||||||
|
}
|
||||||
|
public string ProviderId { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "guid")]
|
||||||
|
public string Guid { get; set; }
|
||||||
|
[XmlElement(ElementName = "Genre")]
|
||||||
|
public List<Genre> Genre { get; set; }
|
||||||
|
[XmlElement(ElementName = "Role")]
|
||||||
|
public List<Role> Role { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "allowSync")]
|
||||||
|
public string AllowSync { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "librarySectionID")]
|
||||||
|
public string LibrarySectionID { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "librarySectionTitle")]
|
||||||
|
public string LibrarySectionTitle { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "librarySectionUUID")]
|
||||||
|
public string LibrarySectionUUID { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "personal")]
|
||||||
|
public string Personal { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "sourceTitle")]
|
||||||
|
public string SourceTitle { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "ratingKey")]
|
||||||
|
public string RatingKey { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "key")]
|
||||||
|
public string Key { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "studio")]
|
||||||
|
public string Studio { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "type")]
|
||||||
|
public string Type { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "title")]
|
||||||
|
public string Title { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "contentRating")]
|
||||||
|
public string ContentRating { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "summary")]
|
||||||
|
public string Summary { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "index")]
|
||||||
|
public string Index { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "rating")]
|
||||||
|
public string Rating { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "viewCount")]
|
||||||
|
public string ViewCount { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "lastViewedAt")]
|
||||||
|
public string LastViewedAt { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "year")]
|
||||||
|
public string Year { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "thumb")]
|
||||||
|
public string Thumb { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "art")]
|
||||||
|
public string Art { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "banner")]
|
||||||
|
public string Banner { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "theme")]
|
||||||
|
public string Theme { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "duration")]
|
||||||
|
public string Duration { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "originallyAvailableAt")]
|
||||||
|
public string OriginallyAvailableAt { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "leafCount")]
|
||||||
|
public string LeafCount { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "viewedLeafCount")]
|
||||||
|
public string ViewedLeafCount { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "childCount")]
|
||||||
|
public string ChildCount { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "addedAt")]
|
||||||
|
public string AddedAt { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "updatedAt")]
|
||||||
|
public string UpdatedAt { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "parentTitle")]
|
||||||
|
public string ParentTitle { get; set; }
|
||||||
|
public List<Directory1> Seasons { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "MediaContainer")]
|
||||||
|
public class PlexSearch
|
||||||
|
{
|
||||||
|
|
||||||
|
[XmlElement(ElementName = "Directory")]
|
||||||
|
public List<Directory1> Directory { get; set; }
|
||||||
|
[XmlElement(ElementName = "Video")]
|
||||||
|
public List<Video> Video { get; set; }
|
||||||
|
[XmlElement(ElementName = "Provider")]
|
||||||
|
public List<Provider> Provider { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "size")]
|
||||||
|
public string Size { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "totalSize")]
|
||||||
|
public string TotalSize { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "identifier")]
|
||||||
|
public string Identifier { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "mediaTagPrefix")]
|
||||||
|
public string MediaTagPrefix { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "mediaTagVersion")]
|
||||||
|
public string MediaTagVersion { get; set; }
|
||||||
|
}
|
||||||
|
}
|
86
Ombi.Api.Models/Plex/PlexServer.cs
Normal file
86
Ombi.Api.Models/Plex/PlexServer.cs
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: PlexServer.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Plex
|
||||||
|
{
|
||||||
|
[XmlRoot(ElementName = "Server")]
|
||||||
|
public class ServerInfo
|
||||||
|
{
|
||||||
|
[XmlAttribute(AttributeName = "accessToken")]
|
||||||
|
public string AccessToken { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "name")]
|
||||||
|
public string Name { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "address")]
|
||||||
|
public string Address { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "port")]
|
||||||
|
public string Port { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "version")]
|
||||||
|
public string Version { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "scheme")]
|
||||||
|
public string Scheme { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "host")]
|
||||||
|
public string Host { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "localAddresses")]
|
||||||
|
public string LocalAddresses { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "machineIdentifier")]
|
||||||
|
public string MachineIdentifier { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "createdAt")]
|
||||||
|
public string CreatedAt { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "updatedAt")]
|
||||||
|
public string UpdatedAt { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "owned")]
|
||||||
|
public string Owned { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "synced")]
|
||||||
|
public string Synced { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "sourceTitle")]
|
||||||
|
public string SourceTitle { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "ownerId")]
|
||||||
|
public string OwnerId { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "home")]
|
||||||
|
public string Home { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "MediaContainer")]
|
||||||
|
public class PlexServer
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName = "Server")]
|
||||||
|
public List<ServerInfo> Server { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "friendlyName")]
|
||||||
|
public string FriendlyName { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "identifier")]
|
||||||
|
public string Identifier { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "machineIdentifier")]
|
||||||
|
public string MachineIdentifier { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "size")]
|
||||||
|
public string Size { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
87
Ombi.Api.Models/Plex/PlexStatus.cs
Normal file
87
Ombi.Api.Models/Plex/PlexStatus.cs
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Xml.Serialization;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Plex
|
||||||
|
{
|
||||||
|
[XmlRoot(ElementName = "Directory")]
|
||||||
|
public class Directory
|
||||||
|
{
|
||||||
|
[XmlAttribute(AttributeName = "count")]
|
||||||
|
public string Count { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "key")]
|
||||||
|
public string Key { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "title")]
|
||||||
|
public string Title { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "type")]
|
||||||
|
public string type { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
[XmlRoot(ElementName = "MediaContainer")]
|
||||||
|
public class PlexStatus
|
||||||
|
{
|
||||||
|
[XmlElement(ElementName = "Directory")]
|
||||||
|
public List<Directory> Directory { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "size")]
|
||||||
|
public string Size { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "allowCameraUpload")]
|
||||||
|
public string AllowCameraUpload { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "allowChannelAccess")]
|
||||||
|
public string AllowChannelAccess { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "allowMediaDeletion")]
|
||||||
|
public string AllowMediaDeletion { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "allowSync")]
|
||||||
|
public string AllowSync { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "backgroundProcessing")]
|
||||||
|
public string BackgroundProcessing { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "certificate")]
|
||||||
|
public string Certificate { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "companionProxy")]
|
||||||
|
public string CompanionProxy { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "friendlyName")]
|
||||||
|
public string FriendlyName { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "machineIdentifier")]
|
||||||
|
public string MachineIdentifier { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "multiuser")]
|
||||||
|
public string Multiuser { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "myPlex")]
|
||||||
|
public string MyPlex { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "myPlexMappingState")]
|
||||||
|
public string MyPlexMappingState { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "myPlexSigninState")]
|
||||||
|
public string MyPlexSigninState { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "myPlexSubscription")]
|
||||||
|
public string MyPlexSubscription { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "myPlexUsername")]
|
||||||
|
public string MyPlexUsername { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "platform")]
|
||||||
|
public string Platform { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "platformVersion")]
|
||||||
|
public string PlatformVersion { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "requestParametersInCookie")]
|
||||||
|
public string RequestParametersInCookie { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "sync")]
|
||||||
|
public string Sync { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "transcoderActiveVideoSessions")]
|
||||||
|
public string TranscoderActiveVideoSessions { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "transcoderAudio")]
|
||||||
|
public string TranscoderAudio { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "transcoderLyrics")]
|
||||||
|
public string TranscoderLyrics { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "transcoderPhoto")]
|
||||||
|
public string TranscoderPhoto { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "transcoderSubtitles")]
|
||||||
|
public string TranscoderSubtitles { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "transcoderVideo")]
|
||||||
|
public string TranscoderVideo { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "transcoderVideoBitrates")]
|
||||||
|
public string TranscoderVideoBitrates { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "transcoderVideoQualities")]
|
||||||
|
public string TranscoderVideoQualities { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "transcoderVideoResolutions")]
|
||||||
|
public string TranscoderVideoResolutions { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "updatedAt")]
|
||||||
|
public string UpdatedAt { get; set; }
|
||||||
|
[XmlAttribute(AttributeName = "version")]
|
||||||
|
public string Version { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
#region Copyright
|
#region Copyright
|
||||||
// /************************************************************************
|
// /************************************************************************
|
||||||
// Copyright (c) 2017 Jamie Rees
|
// Copyright (c) 2016 Jamie Rees
|
||||||
// File: PlexUserRequest.cs
|
// File: PlexUserRequest.cs
|
||||||
// Created By: Jamie Rees
|
// Created By: Jamie Rees
|
||||||
//
|
//
|
||||||
|
@ -24,10 +24,17 @@
|
||||||
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
// ************************************************************************/
|
// ************************************************************************/
|
||||||
#endregion
|
#endregion
|
||||||
namespace Ombi.Api.Plex.Models
|
|
||||||
|
namespace Ombi.Api.Models.Plex
|
||||||
{
|
{
|
||||||
public class PlexUserRequest
|
public class PlexUserRequest
|
||||||
{
|
{
|
||||||
public UserRequest user { get; set; }
|
public UserRequest user { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class UserRequest
|
||||||
|
{
|
||||||
|
public string login { get; set; }
|
||||||
|
public string password { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
241
Ombi.Api.Models/Plex/RecentlyAddedModelOld.cs
Normal file
241
Ombi.Api.Models/Plex/RecentlyAddedModelOld.cs
Normal file
|
@ -0,0 +1,241 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: RecentlyAddedModelOld.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Plex
|
||||||
|
{
|
||||||
|
public class RecentlyAddedChild
|
||||||
|
{
|
||||||
|
public string _elementType { get; set; }
|
||||||
|
public int ratingKey { get; set; }
|
||||||
|
public string key { get; set; }
|
||||||
|
public int parentRatingKey { get; set; }
|
||||||
|
public int grandparentRatingKey { get; set; }
|
||||||
|
public string type { get; set; }
|
||||||
|
public string title { get; set; }
|
||||||
|
public string grandparentKey { get; set; }
|
||||||
|
public string parentKey { get; set; }
|
||||||
|
public string grandparentTitle { get; set; }
|
||||||
|
public string summary { get; set; }
|
||||||
|
public int index { get; set; }
|
||||||
|
public int parentIndex { get; set; }
|
||||||
|
public string thumb { get; set; }
|
||||||
|
public string art { get; set; }
|
||||||
|
public string grandparentThumb { get; set; }
|
||||||
|
public string grandparentArt { get; set; }
|
||||||
|
public int duration { get; set; }
|
||||||
|
public int addedAt { get; set; }
|
||||||
|
public int updatedAt { get; set; }
|
||||||
|
public string chapterSource { get; set; }
|
||||||
|
public List<Child2> _children { get; set; }
|
||||||
|
public string contentRating { get; set; }
|
||||||
|
public int? year { get; set; }
|
||||||
|
public string parentThumb { get; set; }
|
||||||
|
public string grandparentTheme { get; set; }
|
||||||
|
public string originallyAvailableAt { get; set; }
|
||||||
|
public string titleSort { get; set; }
|
||||||
|
public int? viewCount { get; set; }
|
||||||
|
public int? lastViewedAt { get; set; }
|
||||||
|
public int? viewOffset { get; set; }
|
||||||
|
public string rating { get; set; }
|
||||||
|
public string studio { get; set; }
|
||||||
|
public string tagline { get; set; }
|
||||||
|
public string originalTitle { get; set; }
|
||||||
|
public string audienceRating { get; set; }
|
||||||
|
public string audienceRatingImage { get; set; }
|
||||||
|
public string ratingImage { get; set; }
|
||||||
|
}
|
||||||
|
public class Child3
|
||||||
|
{
|
||||||
|
public string _elementType { get; set; }
|
||||||
|
public string id { get; set; }
|
||||||
|
public string key { get; set; }
|
||||||
|
public double duration { get; set; }
|
||||||
|
public string file { get; set; }
|
||||||
|
public double size { get; set; }
|
||||||
|
public string audioProfile { get; set; }
|
||||||
|
public string container { get; set; }
|
||||||
|
public string videoProfile { get; set; }
|
||||||
|
public string deepAnalysisVersion { get; set; }
|
||||||
|
public string requiredBandwidths { get; set; }
|
||||||
|
public string hasThumbnail { get; set; }
|
||||||
|
public bool? has64bitOffsets { get; set; }
|
||||||
|
public bool? optimizedForStreaming { get; set; }
|
||||||
|
public bool? hasChapterTextStream { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Child2
|
||||||
|
{
|
||||||
|
public string _elementType { get; set; }
|
||||||
|
public string videoResolution { get; set; }
|
||||||
|
public int id { get; set; }
|
||||||
|
public int duration { get; set; }
|
||||||
|
public int bitrate { get; set; }
|
||||||
|
public int width { get; set; }
|
||||||
|
public int height { get; set; }
|
||||||
|
public string aspectRatio { get; set; }
|
||||||
|
public int audioChannels { get; set; }
|
||||||
|
public string audioCodec { get; set; }
|
||||||
|
public string videoCodec { get; set; }
|
||||||
|
public string container { get; set; }
|
||||||
|
public string videoFrameRate { get; set; }
|
||||||
|
public string audioProfile { get; set; }
|
||||||
|
public string videoProfile { get; set; }
|
||||||
|
public List<Child3> _children { get; set; }
|
||||||
|
public string tag { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RecentlyAddedModelOld
|
||||||
|
{
|
||||||
|
public string _elementType { get; set; }
|
||||||
|
public string allowSync { get; set; }
|
||||||
|
public string art { get; set; }
|
||||||
|
public string identifier { get; set; }
|
||||||
|
public string librarySectionID { get; set; }
|
||||||
|
public string librarySectionTitle { get; set; }
|
||||||
|
public string librarySectionUUID { get; set; }
|
||||||
|
public string mediaTagPrefix { get; set; }
|
||||||
|
public string mediaTagVersion { get; set; }
|
||||||
|
public string mixedParents { get; set; }
|
||||||
|
public string nocache { get; set; }
|
||||||
|
public string thumb { get; set; }
|
||||||
|
public string title1 { get; set; }
|
||||||
|
public string title2 { get; set; }
|
||||||
|
public string viewGroup { get; set; }
|
||||||
|
public string viewMode { get; set; }
|
||||||
|
public List<RecentlyAddedChild> _children { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 1.3 and forward!
|
||||||
|
public class PartRecentlyAdded
|
||||||
|
{
|
||||||
|
public int id { get; set; }
|
||||||
|
public string key { get; set; }
|
||||||
|
public int duration { get; set; }
|
||||||
|
public string file { get; set; }
|
||||||
|
public double size { get; set; }
|
||||||
|
public string audioProfile { get; set; }
|
||||||
|
public string container { get; set; }
|
||||||
|
public string videoProfile { get; set; }
|
||||||
|
public string deepAnalysisVersion { get; set; }
|
||||||
|
public string requiredBandwidths { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Medium
|
||||||
|
{
|
||||||
|
public string videoResolution { get; set; }
|
||||||
|
public int id { get; set; }
|
||||||
|
public int duration { get; set; }
|
||||||
|
public int bitrate { get; set; }
|
||||||
|
public int width { get; set; }
|
||||||
|
public int height { get; set; }
|
||||||
|
public double aspectRatio { get; set; }
|
||||||
|
public int audioChannels { get; set; }
|
||||||
|
public string audioCodec { get; set; }
|
||||||
|
public string videoCodec { get; set; }
|
||||||
|
public string container { get; set; }
|
||||||
|
public string videoFrameRate { get; set; }
|
||||||
|
public string audioProfile { get; set; }
|
||||||
|
public string videoProfile { get; set; }
|
||||||
|
public List<PartRecentlyAdded> Part { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DirectorRecentlyAdded
|
||||||
|
{
|
||||||
|
public string tag { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class WriterRecentlyAdded
|
||||||
|
{
|
||||||
|
public string tag { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Metadata
|
||||||
|
{
|
||||||
|
public string ratingKey { get; set; }
|
||||||
|
public string key { get; set; }
|
||||||
|
public string parentRatingKey { get; set; }
|
||||||
|
public string grandparentRatingKey { get; set; }
|
||||||
|
public string type { get; set; }
|
||||||
|
public string title { get; set; }
|
||||||
|
public string titleSort { get; set; }
|
||||||
|
public string grandparentKey { get; set; }
|
||||||
|
public string parentKey { get; set; }
|
||||||
|
public string grandparentTitle { get; set; }
|
||||||
|
public string contentRating { get; set; }
|
||||||
|
public string summary { get; set; }
|
||||||
|
public int index { get; set; }
|
||||||
|
public int parentIndex { get; set; }
|
||||||
|
public int year { get; set; }
|
||||||
|
public string thumb { get; set; }
|
||||||
|
public string art { get; set; }
|
||||||
|
public string parentThumb { get; set; }
|
||||||
|
public string grandparentThumb { get; set; }
|
||||||
|
public string grandparentArt { get; set; }
|
||||||
|
public string grandparentTheme { get; set; }
|
||||||
|
public int duration { get; set; }
|
||||||
|
public string originallyAvailableAt { get; set; }
|
||||||
|
public int addedAt { get; set; }
|
||||||
|
public int updatedAt { get; set; }
|
||||||
|
public List<Medium> Media { get; set; }
|
||||||
|
public List<DirectorRecentlyAdded> Director { get; set; }
|
||||||
|
public List<WriterRecentlyAdded> Writer { get; set; }
|
||||||
|
public int? viewCount { get; set; }
|
||||||
|
public int? lastViewedAt { get; set; }
|
||||||
|
public double? rating { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class MediaContainer
|
||||||
|
{
|
||||||
|
public double size { get; set; }
|
||||||
|
public double totalSize { get; set; }
|
||||||
|
public bool allowSync { get; set; }
|
||||||
|
public string art { get; set; }
|
||||||
|
public string identifier { get; set; }
|
||||||
|
public int librarySectionID { get; set; }
|
||||||
|
public string librarySectionTitle { get; set; }
|
||||||
|
public string librarySectionUUID { get; set; }
|
||||||
|
public string mediaTagPrefix { get; set; }
|
||||||
|
public int mediaTagVersion { get; set; }
|
||||||
|
public bool mixedParents { get; set; }
|
||||||
|
public bool nocache { get; set; }
|
||||||
|
public int offset { get; set; }
|
||||||
|
public string thumb { get; set; }
|
||||||
|
public string title1 { get; set; }
|
||||||
|
public string title2 { get; set; }
|
||||||
|
public string viewGroup { get; set; }
|
||||||
|
public int viewMode { get; set; }
|
||||||
|
public List<Metadata> Metadata { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class PlexRecentlyAddedModel
|
||||||
|
{
|
||||||
|
public MediaContainer MediaContainer { get; set; }
|
||||||
|
}
|
||||||
|
}
|
38
Ombi.Api.Models/Properties/AssemblyInfo.cs
Normal file
38
Ombi.Api.Models/Properties/AssemblyInfo.cs
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("Ombi.Api.Models")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("Ombi.Api.Models")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2016")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("cb37a5f8-6dfc-4554-99d3-a42b502e4591")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||||
|
|
||||||
|
[assembly: AssemblyInformationalVersionAttribute("1.0.0.0")]
|
|
@ -1,4 +1,4 @@
|
||||||
namespace Ombi.Api.SickRage.Models
|
namespace Ombi.Api.Models.SickRage
|
||||||
{
|
{
|
||||||
public abstract class SickRageBase<T>
|
public abstract class SickRageBase<T>
|
||||||
{
|
{
|
37
Ombi.Api.Models/SickRage/SickRagePing.cs
Normal file
37
Ombi.Api.Models/SickRage/SickRagePing.cs
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SickRagePing.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.SickRage
|
||||||
|
{
|
||||||
|
public class SickRagePingData
|
||||||
|
{
|
||||||
|
public int pid { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SickRagePing : SickRageBase<SickRagePingData>
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Ombi.Helpers;
|
using Ombi.Helpers;
|
||||||
|
|
||||||
namespace Ombi.Api.SickRage.Models
|
namespace Ombi.Api.Models.SickRage
|
||||||
{
|
{
|
||||||
public class SickRageSeasonList : SickRageBase<object>
|
public class SickRageSeasonList : SickRageBase<object>
|
||||||
{
|
{
|
82
Ombi.Api.Models/SickRage/SickRageShowInformation.cs
Normal file
82
Ombi.Api.Models/SickRage/SickRageShowInformation.cs
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SickRageShowInformation.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.SickRage
|
||||||
|
{
|
||||||
|
public class Cache
|
||||||
|
{
|
||||||
|
public int banner { get; set; }
|
||||||
|
public int poster { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class QualityDetails
|
||||||
|
{
|
||||||
|
public List<object> archive { get; set; }
|
||||||
|
public List<string> initial { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SeasonList
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Data
|
||||||
|
{
|
||||||
|
public int air_by_date { get; set; }
|
||||||
|
public string airs { get; set; }
|
||||||
|
public int anime { get; set; }
|
||||||
|
public int archive_firstmatch { get; set; }
|
||||||
|
public Cache cache { get; set; }
|
||||||
|
public int dvdorder { get; set; }
|
||||||
|
public int flatten_folders { get; set; }
|
||||||
|
public List<string> genre { get; set; }
|
||||||
|
public string imdbid { get; set; }
|
||||||
|
public int indexerid { get; set; }
|
||||||
|
public string language { get; set; }
|
||||||
|
public string location { get; set; }
|
||||||
|
public string network { get; set; }
|
||||||
|
public string next_ep_airdate { get; set; }
|
||||||
|
public int paused { get; set; }
|
||||||
|
public string quality { get; set; }
|
||||||
|
public QualityDetails quality_details { get; set; }
|
||||||
|
public List<object> rls_ignore_words { get; set; }
|
||||||
|
public List<object> rls_require_words { get; set; }
|
||||||
|
public int scene { get; set; }
|
||||||
|
public SeasonList season_list { get; set; }
|
||||||
|
public string show_name { get; set; }
|
||||||
|
public int sports { get; set; }
|
||||||
|
public string status { get; set; }
|
||||||
|
public int subtitles { get; set; }
|
||||||
|
public int tvdbid { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SickRageShowInformation : SickRageBase<Data>
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
35
Ombi.Api.Models/SickRage/SickRageStatus.cs
Normal file
35
Ombi.Api.Models/SickRage/SickRageStatus.cs
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SickRageStatus.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.SickRage
|
||||||
|
{
|
||||||
|
public static class SickRageStatus
|
||||||
|
{
|
||||||
|
public const string Wanted = "wanted";
|
||||||
|
public const string Skipped = "skipped";
|
||||||
|
public const string Ignored = "Ignored";
|
||||||
|
}
|
||||||
|
}
|
38
Ombi.Api.Models/SickRage/SickRageTvAdd.cs
Normal file
38
Ombi.Api.Models/SickRage/SickRageTvAdd.cs
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SickRageTvAdd.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.SickRage
|
||||||
|
{
|
||||||
|
public class SickRageTvAddData
|
||||||
|
{
|
||||||
|
public string name { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SickRageTvAdd : SickRageBase<SickRageTvAddData>
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
41
Ombi.Api.Models/SickRage/SickrageShows.cs
Normal file
41
Ombi.Api.Models/SickRage/SickrageShows.cs
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SickrageShows.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.SickRage
|
||||||
|
{
|
||||||
|
public class SickrageShows : SickRageBase<Dictionary<int, Item>>
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Item
|
||||||
|
{
|
||||||
|
public int tvdbid { get; set; }
|
||||||
|
}
|
||||||
|
}
|
34
Ombi.Api.Models/Sonarr/SonarrAddEpisodeBody.cs
Normal file
34
Ombi.Api.Models/Sonarr/SonarrAddEpisodeBody.cs
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SonarrAddEpisodeBody.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.Sonarr
|
||||||
|
{
|
||||||
|
public class SonarrAddEpisodeBody
|
||||||
|
{
|
||||||
|
public string name { get; set; }
|
||||||
|
public int[] episodeIds { get; set; }
|
||||||
|
}
|
||||||
|
}
|
58
Ombi.Api.Models/Sonarr/SonarrAddEpisodeResult.cs
Normal file
58
Ombi.Api.Models/Sonarr/SonarrAddEpisodeResult.cs
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SonarrAddEpisodeResult.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Sonarr
|
||||||
|
{
|
||||||
|
public class Body
|
||||||
|
{
|
||||||
|
public List<int> episodeIds { get; set; }
|
||||||
|
public bool sendUpdatesToClient { get; set; }
|
||||||
|
public bool updateScheduledTask { get; set; }
|
||||||
|
public string completionMessage { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
public string trigger { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SonarrAddEpisodeResult
|
||||||
|
{
|
||||||
|
public string name { get; set; }
|
||||||
|
public Body body { get; set; }
|
||||||
|
public string priority { get; set; }
|
||||||
|
public string status { get; set; }
|
||||||
|
public string queued { get; set; }
|
||||||
|
public string trigger { get; set; }
|
||||||
|
public string state { get; set; }
|
||||||
|
public bool manual { get; set; }
|
||||||
|
public string startedOn { get; set; }
|
||||||
|
public bool sendUpdatesToClient { get; set; }
|
||||||
|
public bool updateScheduledTask { get; set; }
|
||||||
|
public int id { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
54
Ombi.Api.Models/Sonarr/SonarrAddSeries.cs
Normal file
54
Ombi.Api.Models/Sonarr/SonarrAddSeries.cs
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Sonarr
|
||||||
|
{
|
||||||
|
public class Season
|
||||||
|
{
|
||||||
|
public int seasonNumber { get; set; }
|
||||||
|
public bool monitored { get; set; }
|
||||||
|
public Statistics statistics { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Statistics
|
||||||
|
{
|
||||||
|
public int episodeFileCount { get; set; }
|
||||||
|
public int episodeCount { get; set; }
|
||||||
|
public int totalEpisodeCount { get; set; }
|
||||||
|
public long sizeOnDisk { get; set; }
|
||||||
|
public float percentOfEpisodes { get; set; }
|
||||||
|
public DateTime previousAiring { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SonarrAddSeries
|
||||||
|
{
|
||||||
|
public SonarrAddSeries()
|
||||||
|
{
|
||||||
|
images = new List<string>();
|
||||||
|
}
|
||||||
|
public AddOptions addOptions { get; set; }
|
||||||
|
public string title { get; set; }
|
||||||
|
public List<Season> seasons { get; set; }
|
||||||
|
public string rootFolderPath { get; set; }
|
||||||
|
public int qualityProfileId { get; set; }
|
||||||
|
public bool seasonFolder { get; set; }
|
||||||
|
public bool monitored { get; set; }
|
||||||
|
public int tvdbId { get; set; }
|
||||||
|
public int tvRageId { get; set; }
|
||||||
|
public string cleanTitle { get; set; }
|
||||||
|
public string imdbId { get; set; }
|
||||||
|
public string titleSlug { get; set; }
|
||||||
|
public int id { get; set; }
|
||||||
|
public List<string> images { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<string> ErrorMessages { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class AddOptions
|
||||||
|
{
|
||||||
|
public bool ignoreEpisodesWithFiles { get; set; }
|
||||||
|
public bool ignoreEpisodesWithoutFiles { get; set; }
|
||||||
|
public bool searchForMissingEpisodes { get; set; }
|
||||||
|
}
|
||||||
|
}
|
69
Ombi.Api.Models/Sonarr/SonarrAllSeries.cs
Normal file
69
Ombi.Api.Models/Sonarr/SonarrAllSeries.cs
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Sonarr
|
||||||
|
{
|
||||||
|
public class SonarrAllSeries
|
||||||
|
{
|
||||||
|
public List<Series> list { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Series
|
||||||
|
{
|
||||||
|
public string title { get; set; }
|
||||||
|
public List<Alternatetitle> alternateTitles { get; set; }
|
||||||
|
public string sortTitle { get; set; }
|
||||||
|
public int seasonCount { get; set; }
|
||||||
|
public int totalEpisodeCount { get; set; }
|
||||||
|
public int episodeCount { get; set; }
|
||||||
|
public int episodeFileCount { get; set; }
|
||||||
|
public long sizeOnDisk { get; set; }
|
||||||
|
public string status { get; set; }
|
||||||
|
public string overview { get; set; }
|
||||||
|
public DateTime previousAiring { get; set; }
|
||||||
|
public string network { get; set; }
|
||||||
|
public List<Image> images { get; set; }
|
||||||
|
public List<Season> seasons { get; set; }
|
||||||
|
public int year { get; set; }
|
||||||
|
public string path { get; set; }
|
||||||
|
public int profileId { get; set; }
|
||||||
|
public bool seasonFolder { get; set; }
|
||||||
|
public bool monitored { get; set; }
|
||||||
|
public bool useSceneNumbering { get; set; }
|
||||||
|
public int runtime { get; set; }
|
||||||
|
public int tvdbId { get; set; }
|
||||||
|
public int tvRageId { get; set; }
|
||||||
|
public int tvMazeId { get; set; }
|
||||||
|
public DateTime firstAired { get; set; }
|
||||||
|
public DateTime lastInfoSync { get; set; }
|
||||||
|
public string seriesType { get; set; }
|
||||||
|
public string cleanTitle { get; set; }
|
||||||
|
public string imdbId { get; set; }
|
||||||
|
public string titleSlug { get; set; }
|
||||||
|
public string certification { get; set; }
|
||||||
|
public List<string> genres { get; set; }
|
||||||
|
public List<object> tags { get; set; }
|
||||||
|
public DateTime added { get; set; }
|
||||||
|
public Ratings ratings { get; set; }
|
||||||
|
public int qualityProfileId { get; set; }
|
||||||
|
public int id { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Ratings
|
||||||
|
{
|
||||||
|
public int votes { get; set; }
|
||||||
|
public float value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Alternatetitle
|
||||||
|
{
|
||||||
|
public string title { get; set; }
|
||||||
|
public int seasonNumber { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Image
|
||||||
|
{
|
||||||
|
public string coverType { get; set; }
|
||||||
|
public string url { get; set; }
|
||||||
|
}
|
||||||
|
}
|
73
Ombi.Api.Models/Sonarr/SonarrEpisode.cs
Normal file
73
Ombi.Api.Models/Sonarr/SonarrEpisode.cs
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SonarrEpisode.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Sonarr
|
||||||
|
{
|
||||||
|
|
||||||
|
public class Revision
|
||||||
|
{
|
||||||
|
public int version { get; set; }
|
||||||
|
public int real { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class EpisodeFile
|
||||||
|
{
|
||||||
|
public int seriesId { get; set; }
|
||||||
|
public int seasonNumber { get; set; }
|
||||||
|
public string relativePath { get; set; }
|
||||||
|
public string path { get; set; }
|
||||||
|
public long size { get; set; }
|
||||||
|
public string dateAdded { get; set; }
|
||||||
|
public Quality quality { get; set; }
|
||||||
|
public bool qualityCutoffNotMet { get; set; }
|
||||||
|
public int id { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class SonarrEpisode
|
||||||
|
{
|
||||||
|
public int seriesId { get; set; }
|
||||||
|
public int episodeFileId { get; set; }
|
||||||
|
public int seasonNumber { get; set; }
|
||||||
|
public int episodeNumber { get; set; }
|
||||||
|
public string title { get; set; }
|
||||||
|
public string airDate { get; set; }
|
||||||
|
public string airDateUtc { get; set; }
|
||||||
|
public string overview { get; set; }
|
||||||
|
public EpisodeFile episodeFile { get; set; }
|
||||||
|
public bool hasFile { get; set; }
|
||||||
|
public bool monitored { get; set; }
|
||||||
|
public int absoluteEpisodeNumber { get; set; }
|
||||||
|
public bool unverifiedSceneNumbering { get; set; }
|
||||||
|
public Series series { get; set; }
|
||||||
|
public int id { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
47
Ombi.Api.Models/Sonarr/SonarrEpisodes.cs
Normal file
47
Ombi.Api.Models/Sonarr/SonarrEpisodes.cs
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SonarrEpisodes.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.Sonarr
|
||||||
|
{
|
||||||
|
public class SonarrEpisodes
|
||||||
|
{
|
||||||
|
|
||||||
|
public int seriesId { get; set; }
|
||||||
|
public int episodeFileId { get; set; }
|
||||||
|
public int seasonNumber { get; set; }
|
||||||
|
public int episodeNumber { get; set; }
|
||||||
|
public string title { get; set; }
|
||||||
|
public string overview { get; set; }
|
||||||
|
public bool hasFile { get; set; }
|
||||||
|
public bool monitored { get; set; }
|
||||||
|
public bool unverifiedSceneNumbering { get; set; }
|
||||||
|
public int id { get; set; }
|
||||||
|
public string airDate { get; set; }
|
||||||
|
public string airDateUtc { get; set; }
|
||||||
|
public int? absoluteEpisodeNumber { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
42
Ombi.Api.Models/Sonarr/SonarrError.cs
Normal file
42
Ombi.Api.Models/Sonarr/SonarrError.cs
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SonarrError.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Sonarr
|
||||||
|
{
|
||||||
|
public class SonarrError
|
||||||
|
{
|
||||||
|
public string propertyName { get; set; }
|
||||||
|
public string errorMessage { get; set; }
|
||||||
|
public object attemptedValue { get; set; }
|
||||||
|
public FormattedMessagePlaceholderValues formattedMessagePlaceholderValues { get; set; }
|
||||||
|
}
|
||||||
|
public class FormattedMessagePlaceholderValues
|
||||||
|
{
|
||||||
|
public string propertyName { get; set; }
|
||||||
|
public object propertyValue { get; set; }
|
||||||
|
}
|
||||||
|
}
|
57
Ombi.Api.Models/Sonarr/SonarrProfile.cs
Normal file
57
Ombi.Api.Models/Sonarr/SonarrProfile.cs
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SonarrProfile.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Sonarr
|
||||||
|
{
|
||||||
|
public class Cutoff
|
||||||
|
{
|
||||||
|
public int id { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Quality
|
||||||
|
{
|
||||||
|
public int id { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Item
|
||||||
|
{
|
||||||
|
public Quality quality { get; set; }
|
||||||
|
public bool allowed { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SonarrProfile
|
||||||
|
{
|
||||||
|
public string name { get; set; }
|
||||||
|
public Cutoff cutoff { get; set; }
|
||||||
|
public List<Item> items { get; set; }
|
||||||
|
public int id { get; set; }
|
||||||
|
}
|
||||||
|
}
|
36
Ombi.Api.Models/Sonarr/SonarrSearchCommand.cs
Normal file
36
Ombi.Api.Models/Sonarr/SonarrSearchCommand.cs
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SonarrSearchCommand.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Sonarr
|
||||||
|
{
|
||||||
|
public class SonarrSearchCommand
|
||||||
|
{
|
||||||
|
public int seriesId { get; set; }
|
||||||
|
public int seasonNumber { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
}
|
||||||
|
}
|
55
Ombi.Api.Models/Sonarr/SonarrSeasonSearchResult.cs
Normal file
55
Ombi.Api.Models/Sonarr/SonarrSeasonSearchResult.cs
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SonarrSeasonSearchResult.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.Sonarr
|
||||||
|
{
|
||||||
|
public class SeasonBody
|
||||||
|
{
|
||||||
|
public int seriesId { get; set; }
|
||||||
|
public int seasonNumber { get; set; }
|
||||||
|
public bool sendUpdatesToClient { get; set; }
|
||||||
|
public bool updateScheduledTask { get; set; }
|
||||||
|
public string completionMessage { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
public string trigger { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SonarrSeasonSearchResult
|
||||||
|
{
|
||||||
|
public string name { get; set; }
|
||||||
|
public SeasonBody body { get; set; }
|
||||||
|
public string priority { get; set; }
|
||||||
|
public string status { get; set; }
|
||||||
|
public string queued { get; set; }
|
||||||
|
public string trigger { get; set; }
|
||||||
|
public string state { get; set; }
|
||||||
|
public bool manual { get; set; }
|
||||||
|
public string startedOn { get; set; }
|
||||||
|
public bool sendUpdatesToClient { get; set; }
|
||||||
|
public bool updateScheduledTask { get; set; }
|
||||||
|
public int id { get; set; }
|
||||||
|
}
|
||||||
|
}
|
56
Ombi.Api.Models/Sonarr/SonarrSeriesSearchResult.cs
Normal file
56
Ombi.Api.Models/Sonarr/SonarrSeriesSearchResult.cs
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SonarrSeriesSearchResult.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.Sonarr
|
||||||
|
{
|
||||||
|
public class SeriesBody
|
||||||
|
{
|
||||||
|
public int seriesId { get; set; }
|
||||||
|
public bool sendUpdatesToClient { get; set; }
|
||||||
|
public bool updateScheduledTask { get; set; }
|
||||||
|
public string completionMessage { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
public string trigger { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SonarrSeriesSearchResult
|
||||||
|
{
|
||||||
|
public string name { get; set; }
|
||||||
|
public SeriesBody body { get; set; }
|
||||||
|
public string priority { get; set; }
|
||||||
|
public string status { get; set; }
|
||||||
|
public string queued { get; set; }
|
||||||
|
public string started { get; set; }
|
||||||
|
public string trigger { get; set; }
|
||||||
|
public string state { get; set; }
|
||||||
|
public bool manual { get; set; }
|
||||||
|
public string startedOn { get; set; }
|
||||||
|
public string stateChangeTime { get; set; }
|
||||||
|
public bool sendUpdatesToClient { get; set; }
|
||||||
|
public bool updateScheduledTask { get; set; }
|
||||||
|
public int id { get; set; }
|
||||||
|
}
|
||||||
|
}
|
51
Ombi.Api.Models/Sonarr/SystemStatus.cs
Normal file
51
Ombi.Api.Models/Sonarr/SystemStatus.cs
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: SystemStatus.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.Sonarr
|
||||||
|
{
|
||||||
|
public class SystemStatus
|
||||||
|
{
|
||||||
|
public string version { get; set; }
|
||||||
|
public string buildTime { get; set; }
|
||||||
|
public bool isDebug { get; set; }
|
||||||
|
public bool isProduction { get; set; }
|
||||||
|
public bool isAdmin { get; set; }
|
||||||
|
public bool isUserInteractive { get; set; }
|
||||||
|
public string startupPath { get; set; }
|
||||||
|
public string appData { get; set; }
|
||||||
|
public string osVersion { get; set; }
|
||||||
|
public bool isMonoRuntime { get; set; }
|
||||||
|
public bool isMono { get; set; }
|
||||||
|
public bool isLinux { get; set; }
|
||||||
|
public bool isOsx { get; set; }
|
||||||
|
public bool isWindows { get; set; }
|
||||||
|
public string branch { get; set; }
|
||||||
|
public string authentication { get; set; }
|
||||||
|
public string sqliteVersion { get; set; }
|
||||||
|
public string urlBase { get; set; }
|
||||||
|
public string runtimeVersion { get; set; }
|
||||||
|
}
|
||||||
|
}
|
33
Ombi.Api.Models/Tv/Authentication.cs
Normal file
33
Ombi.Api.Models/Tv/Authentication.cs
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: Authentication.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.Tv
|
||||||
|
{
|
||||||
|
public class Authentication
|
||||||
|
{
|
||||||
|
public string token { get; set; }
|
||||||
|
}
|
||||||
|
}
|
89
Ombi.Api.Models/Tv/TVMazeShow.cs
Normal file
89
Ombi.Api.Models/Tv/TVMazeShow.cs
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Tv
|
||||||
|
{
|
||||||
|
public class TvMazeShow
|
||||||
|
{
|
||||||
|
public TvMazeShow()
|
||||||
|
{
|
||||||
|
Season = new List<TvMazeCustomSeason>();
|
||||||
|
}
|
||||||
|
public int id { get; set; }
|
||||||
|
public string url { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
public string type { get; set; }
|
||||||
|
public string language { get; set; }
|
||||||
|
public List<string> genres { get; set; }
|
||||||
|
public string status { get; set; }
|
||||||
|
public int runtime { get; set; }
|
||||||
|
public string premiered { get; set; }
|
||||||
|
public Schedule schedule { get; set; }
|
||||||
|
public Rating rating { get; set; }
|
||||||
|
public int weight { get; set; }
|
||||||
|
public Network network { get; set; }
|
||||||
|
public object webChannel { get; set; }
|
||||||
|
public Externals externals { get; set; }
|
||||||
|
public Image image { get; set; }
|
||||||
|
public string summary { get; set; }
|
||||||
|
public int updated { get; set; }
|
||||||
|
public Links _links { get; set; }
|
||||||
|
public List<TvMazeCustomSeason> Season { get; set; }
|
||||||
|
public Embedded _embedded { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TvMazeCustomSeason
|
||||||
|
{
|
||||||
|
public int SeasonNumber { get; set; }
|
||||||
|
public int EpisodeNumber { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Season
|
||||||
|
{
|
||||||
|
public int id { get; set; }
|
||||||
|
public string url { get; set; }
|
||||||
|
public int number { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
public int? episodeOrder { get; set; }
|
||||||
|
public string premiereDate { get; set; }
|
||||||
|
public string endDate { get; set; }
|
||||||
|
public Network2 network { get; set; }
|
||||||
|
public object webChannel { get; set; }
|
||||||
|
public Image2 image { get; set; }
|
||||||
|
public string summary { get; set; }
|
||||||
|
public Links2 _links { get; set; }
|
||||||
|
}
|
||||||
|
public class Country2
|
||||||
|
{
|
||||||
|
public string name { get; set; }
|
||||||
|
public string code { get; set; }
|
||||||
|
public string timezone { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Network2
|
||||||
|
{
|
||||||
|
public int id { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
public Country2 country { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Image2
|
||||||
|
{
|
||||||
|
public string medium { get; set; }
|
||||||
|
public string original { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Self2
|
||||||
|
{
|
||||||
|
public string href { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Links2
|
||||||
|
{
|
||||||
|
public Self2 self { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Embedded
|
||||||
|
{
|
||||||
|
public List<Season> seasons { get; set; }
|
||||||
|
}
|
||||||
|
}
|
44
Ombi.Api.Models/Tv/TvMazeEpisodes.cs
Normal file
44
Ombi.Api.Models/Tv/TvMazeEpisodes.cs
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: TvMazeEpisodes.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
namespace Ombi.Api.Models.Tv
|
||||||
|
{
|
||||||
|
public class TvMazeEpisodes
|
||||||
|
{
|
||||||
|
public int id { get; set; }
|
||||||
|
public string url { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
public int season { get; set; }
|
||||||
|
public int number { get; set; }
|
||||||
|
public string airdate { get; set; }
|
||||||
|
public string airtime { get; set; }
|
||||||
|
public string airstamp { get; set; }
|
||||||
|
public int runtime { get; set; }
|
||||||
|
public Image image { get; set; }
|
||||||
|
public string summary { get; set; }
|
||||||
|
public Links _links { get; set; }
|
||||||
|
}
|
||||||
|
}
|
120
Ombi.Api.Models/Tv/TvMazeSearch.cs
Normal file
120
Ombi.Api.Models/Tv/TvMazeSearch.cs
Normal file
|
@ -0,0 +1,120 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: TvMazeSearch.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Tv
|
||||||
|
{
|
||||||
|
public class Schedule
|
||||||
|
{
|
||||||
|
public List<object> days { get; set; }
|
||||||
|
public string time { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Rating
|
||||||
|
{
|
||||||
|
public double? average { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Country
|
||||||
|
{
|
||||||
|
public string code { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
public string timezone { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Network
|
||||||
|
{
|
||||||
|
public Country country { get; set; }
|
||||||
|
public int id { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Externals
|
||||||
|
{
|
||||||
|
public string imdb { get; set; }
|
||||||
|
public int? thetvdb { get; set; }
|
||||||
|
public int? tvrage { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Image
|
||||||
|
{
|
||||||
|
public string medium { get; set; }
|
||||||
|
public string original { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Self
|
||||||
|
{
|
||||||
|
public string href { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Previousepisode
|
||||||
|
{
|
||||||
|
public string href { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Nextepisode
|
||||||
|
{
|
||||||
|
public string href { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Links
|
||||||
|
{
|
||||||
|
public Nextepisode nextepisode { get; set; }
|
||||||
|
public Previousepisode previousepisode { get; set; }
|
||||||
|
public Self self { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Show
|
||||||
|
{
|
||||||
|
public Links _links { get; set; }
|
||||||
|
public Externals externals { get; set; }
|
||||||
|
public List<object> genres { get; set; }
|
||||||
|
public int id { get; set; }
|
||||||
|
public Image image { get; set; }
|
||||||
|
public string language { get; set; }
|
||||||
|
public string name { get; set; }
|
||||||
|
public Network network { get; set; }
|
||||||
|
public string premiered { get; set; }
|
||||||
|
public Rating rating { get; set; }
|
||||||
|
public int? runtime { get; set; }
|
||||||
|
public Schedule schedule { get; set; }
|
||||||
|
public string status { get; set; }
|
||||||
|
public string summary { get; set; }
|
||||||
|
public string type { get; set; }
|
||||||
|
public int updated { get; set; }
|
||||||
|
public string url { get; set; }
|
||||||
|
public object webChannel { get; set; }
|
||||||
|
public int weight { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TvMazeSearch
|
||||||
|
{
|
||||||
|
public double score { get; set; }
|
||||||
|
public Show show { get; set; }
|
||||||
|
}
|
||||||
|
}
|
7
Ombi.Api.Models/Tv/TvMazeSeasons.cs
Normal file
7
Ombi.Api.Models/Tv/TvMazeSeasons.cs
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
namespace Ombi.Api.Models.Tv
|
||||||
|
{
|
||||||
|
public class TvMazeSeasons : TvMazeShow
|
||||||
|
{
|
||||||
|
public int number { get; set; }
|
||||||
|
}
|
||||||
|
}
|
69
Ombi.Api.Models/Tv/TvSearchResult.cs
Normal file
69
Ombi.Api.Models/Tv/TvSearchResult.cs
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: TvSearchResult.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Tv
|
||||||
|
{
|
||||||
|
public class TvShowSearchResult
|
||||||
|
{
|
||||||
|
public int id { get; set; }
|
||||||
|
public int airedSeason { get; set; }
|
||||||
|
public int airedEpisodeNumber { get; set; }
|
||||||
|
public string episodeName { get; set; }
|
||||||
|
public string firstAired { get; set; }
|
||||||
|
public string guestStars { get; set; }
|
||||||
|
public string director { get; set; }
|
||||||
|
public List<string> writers { get; set; }
|
||||||
|
public string overview { get; set; }
|
||||||
|
public string productionCode { get; set; }
|
||||||
|
public string showUrl { get; set; }
|
||||||
|
public int lastUpdated { get; set; }
|
||||||
|
public string dvdDiscid { get; set; }
|
||||||
|
public int dvdSeason { get; set; }
|
||||||
|
public int dvdEpisodeNumber { get; set; }
|
||||||
|
public int dvdChapter { get; set; }
|
||||||
|
public int absoluteNumber { get; set; }
|
||||||
|
public string filename { get; set; }
|
||||||
|
public string seriesId { get; set; }
|
||||||
|
public string lastUpdatedBy { get; set; }
|
||||||
|
public int airsAfterSeason { get; set; }
|
||||||
|
public int airsBeforeSeason { get; set; }
|
||||||
|
public int airsBeforeEpisode { get; set; }
|
||||||
|
public string thumbAuthor { get; set; }
|
||||||
|
public string thumbAdded { get; set; }
|
||||||
|
public string thumbWidth { get; set; }
|
||||||
|
public string thumbHeight { get; set; }
|
||||||
|
public string imdbId { get; set; }
|
||||||
|
public int siteRating { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TvSearchResult
|
||||||
|
{
|
||||||
|
public List<TvShow> data { get; set; }
|
||||||
|
}
|
||||||
|
}
|
62
Ombi.Api.Models/Tv/TvShow.cs
Normal file
62
Ombi.Api.Models/Tv/TvShow.cs
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: TvShow.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Tv
|
||||||
|
{
|
||||||
|
public class TvShow
|
||||||
|
{
|
||||||
|
public int id { get; set; }
|
||||||
|
public string seriesName { get; set; }
|
||||||
|
public List<string> aliases { get; set; }
|
||||||
|
public string banner { get; set; }
|
||||||
|
public string seriesId { get; set; }
|
||||||
|
public string status { get; set; }
|
||||||
|
public string firstAired { get; set; }
|
||||||
|
public string network { get; set; }
|
||||||
|
public string networkId { get; set; }
|
||||||
|
public string runtime { get; set; }
|
||||||
|
public List<string> genre { get; set; }
|
||||||
|
public string overview { get; set; }
|
||||||
|
public int lastUpdated { get; set; }
|
||||||
|
public string airsDayOfWeek { get; set; }
|
||||||
|
public string airsTime { get; set; }
|
||||||
|
public string rating { get; set; }
|
||||||
|
public string imdbId { get; set; }
|
||||||
|
public string zap2itId { get; set; }
|
||||||
|
public string added { get; set; }
|
||||||
|
public int addedBy { get; set; }
|
||||||
|
public int siteRating { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TvShowInformation
|
||||||
|
{
|
||||||
|
public TvShow data { get; set; }
|
||||||
|
}
|
||||||
|
}
|
54
Ombi.Api.Models/Tv/TvShowImages.cs
Normal file
54
Ombi.Api.Models/Tv/TvShowImages.cs
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: TvShowImages.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Tv
|
||||||
|
{
|
||||||
|
public class RatingsInfo
|
||||||
|
{
|
||||||
|
public double average { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Datum
|
||||||
|
{
|
||||||
|
public int id { get; set; }
|
||||||
|
public string keyType { get; set; }
|
||||||
|
public string subKey { get; set; }
|
||||||
|
public string fileName { get; set; }
|
||||||
|
public string resolution { get; set; }
|
||||||
|
public RatingsInfo ratingsInfo { get; set; }
|
||||||
|
public string thumbnail { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TvShowImages
|
||||||
|
{
|
||||||
|
public List<Datum> data { get; set; }
|
||||||
|
public object errors { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
42
Ombi.Api.Models/Watcher/WatcherAddMovieResult.cs
Normal file
42
Ombi.Api.Models/Watcher/WatcherAddMovieResult.cs
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: WatcherAddMovieResult.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Watcher
|
||||||
|
{
|
||||||
|
public class WatcherAddMovieResult
|
||||||
|
{
|
||||||
|
public bool response { get; set; }
|
||||||
|
public string message { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
public string ErrorMessage { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public bool Error { get; set; }
|
||||||
|
}
|
||||||
|
}
|
90
Ombi.Api.Models/Watcher/WatcherListStatusResult.cs
Normal file
90
Ombi.Api.Models/Watcher/WatcherListStatusResult.cs
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
#region Copyright
|
||||||
|
// /************************************************************************
|
||||||
|
// Copyright (c) 2016 Jamie Rees
|
||||||
|
// File: WatcherListStatusResult.cs
|
||||||
|
// Created By: Jamie Rees
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
// ************************************************************************/
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using RestSharp.Deserializers;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Models.Watcher
|
||||||
|
{
|
||||||
|
public class Quality2
|
||||||
|
{
|
||||||
|
[JsonProperty("720P")]
|
||||||
|
public List<string> Q720P { get; set; }
|
||||||
|
[JsonProperty("1080P")]
|
||||||
|
public List<string> Q1080P { get; set; }
|
||||||
|
[JsonProperty("4K")]
|
||||||
|
public List<string> Q4K { get; set; }
|
||||||
|
public List<string> SD { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Filters
|
||||||
|
{
|
||||||
|
public string preferredwords { get; set; }
|
||||||
|
public string ignoredwords { get; set; }
|
||||||
|
public string requiredwords { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Quality
|
||||||
|
{
|
||||||
|
[JsonProperty("Quality")]
|
||||||
|
public Quality2 quality { get; set; }
|
||||||
|
public Filters Filters { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class WatcherListStatusResult
|
||||||
|
{
|
||||||
|
public string status { get; set; }
|
||||||
|
public string plot { get; set; }
|
||||||
|
public string rated { get; set; }
|
||||||
|
public string title { get; set; }
|
||||||
|
public object finishedscore { get; set; }
|
||||||
|
public string predb { get; set; }
|
||||||
|
public string year { get; set; }
|
||||||
|
public string poster { get; set; }
|
||||||
|
public string tomatourl { get; set; }
|
||||||
|
public string released { get; set; }
|
||||||
|
public object finisheddate { get; set; }
|
||||||
|
public string dvd { get; set; }
|
||||||
|
public string tomatorating { get; set; }
|
||||||
|
public string imdbid { get; set; }
|
||||||
|
public Quality quality { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class WatcherListStatusResultContainer
|
||||||
|
{
|
||||||
|
[JsonProperty("movies")]
|
||||||
|
public List<WatcherListStatusResult> Movies { get; set; }
|
||||||
|
[JsonProperty("response")]
|
||||||
|
public bool Response { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public string ErrorMessage { get; set; }
|
||||||
|
[JsonIgnore]
|
||||||
|
public bool Error { get; set; }
|
||||||
|
}
|
||||||
|
}
|
8
Ombi.Api.Models/Watcher/WatcherResponse.cs
Normal file
8
Ombi.Api.Models/Watcher/WatcherResponse.cs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
using System;
|
||||||
|
namespace Ombi.Api.Models
|
||||||
|
{
|
||||||
|
public class WatcherResponse<T>
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue