Skip to content

Commit

Permalink
Merge branch 'develop' into bugfix/configparser-better-syspath-develop
Browse files Browse the repository at this point in the history
  • Loading branch information
p0psicles authored Sep 9, 2018
2 parents 4eb9a89 + 31171bc commit d646ccc
Show file tree
Hide file tree
Showing 26 changed files with 716 additions and 516 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,16 @@
#### Improvements
- Updated `guessit` to version 3.0.0 ([#4244](https://github.com/pymedusa/Medusa/pull/4244))
- Updated the API v2 endpoint to handle concurrent requests ([#4970](https://github.com/pymedusa/Medusa/pull/4970))
- Converted some of the show header to Vue ([#5087](https://github.com/pymedusa/Medusa/pull/5087))

#### Fixes
- Fixed many release name parsing issues as a result of updating `guessit` ([#4244](https://github.com/pymedusa/Medusa/pull/4244))
- Fixed UI bugs in home page (when using "split home in tabs") and status page ([#5126](https://github.com/pymedusa/Medusa/pull/5126) + [#5127](https://github.com/pymedusa/Medusa/pull/5127))
- Fixed error due to `null` values in the episodes database table ([#5132](https://github.com/pymedusa/Medusa/pull/5132))
- Fixed extraneous calls to AniDB when navigating to any show's page ([#5166](https://github.com/pymedusa/Medusa/pull/5166))
- Fixed being unable to start Medusa due to an import error ([#5145](https://github.com/pymedusa/Medusa/pull/5145))


-----

## 0.2.9 (2018-09-06)
Expand Down
7 changes: 7 additions & 0 deletions dredd/api-description.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ paths:
description: Filter series based on paused status
type: boolean
- $ref: '#/parameters/detailed'
- $ref: '#/parameters/fetch'
- $ref: '#/parameters/page'
- $ref: '#/parameters/limit'
- $ref: '#/parameters/sort'
Expand Down Expand Up @@ -1829,6 +1830,12 @@ parameters:
required: false
description: Whether response should contain detailed information
type: boolean
fetch:
name: fetch
in: query
required: false
description: Whether response should fetch external information
type: boolean
page:
name: page
in: query
Expand Down
3 changes: 1 addition & 2 deletions medusa/server/api/v2/internal.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,7 @@ def http_get(self, resource, path_param=None):
{'func': resource_function_name, 'resource': resource})
return self._bad_request('{key} is a invalid resource'.format(key=resource))

data = resource_function()
return self._ok(data=data)
return resource_function()

# existingSeries
def resource_existing_series(self):
Expand Down
9 changes: 7 additions & 2 deletions medusa/server/api/v2/series.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,11 @@ def filter_series(current):

if not series_slug:
detailed = self._parse_boolean(self.get_argument('detailed', default=False))
data = [s.to_json(detailed=detailed) for s in Series.find_series(predicate=filter_series)]
fetch = self._parse_boolean(self.get_argument('fetch', default=False))
data = [
s.to_json(detailed=detailed, fetch=fetch)
for s in Series.find_series(predicate=filter_series)
]
return self._paginate(data, sort='title')

identifier = SeriesIdentifier.from_slug(series_slug)
Expand All @@ -61,7 +65,8 @@ def filter_series(current):
return self._not_found('Series not found')

detailed = self._parse_boolean(self.get_argument('detailed', default=True))
data = series.to_json(detailed=detailed)
fetch = self._parse_boolean(self.get_argument('fetch', default=False))
data = series.to_json(detailed=detailed, fetch=fetch)
if path_param:
if path_param not in data:
return self._bad_request("Invalid path parameter '{0}'".format(path_param))
Expand Down
2 changes: 1 addition & 1 deletion medusa/tv/episode.py
Original file line number Diff line number Diff line change
Expand Up @@ -632,7 +632,7 @@ def load_from_db(self, season, episode):
self.airdate = date.fromordinal(int(sql_results[0]['airdate']))
self.status = int(sql_results[0]['status'] or UNSET)
self.quality = int(sql_results[0]['quality'] or Quality.NA)
self.watched = int(sql_results[0]['watched'])
self.watched = bool(sql_results[0]['watched'])

# don't overwrite my location
if sql_results[0]['location']:
Expand Down
38 changes: 24 additions & 14 deletions medusa/tv/series.py
Original file line number Diff line number Diff line change
Expand Up @@ -1965,8 +1965,13 @@ def __unicode__(self):
to_return += u'anime: {0}\n'.format(self.is_anime)
return to_return

def to_json(self, detailed=True):
"""Return JSON representation."""
def to_json(self, detailed=True, fetch=False):
"""
Return JSON representation.
:param detailed: Append seasons & episodes data as well
:param fetch: Fetch and append external data (for example AniDB release groups)
"""
bw_list = self.release_groups or BlackAndWhiteList(self)

data = {}
Expand Down Expand Up @@ -2018,22 +2023,27 @@ def to_json(self, detailed=True):
data['config']['defaultEpisodeStatus'] = self.default_ep_status_name
data['config']['aliases'] = list(self.aliases)
data['config']['release'] = {}
# These are for now considered anime-only options, as they query anidb for available release groups.
data['config']['release']['ignoredWords'] = self.release_ignore_words
data['config']['release']['requiredWords'] = self.release_required_words

# These are for now considered anime-only options
if self.is_anime:
data['config']['release']['blacklist'] = bw_list.blacklist
data['config']['release']['whitelist'] = bw_list.whitelist
try:
data['config']['release']['allgroups'] = get_release_groups_for_anime(self.name)
except AnidbAdbaConnectionException as error:
data['config']['release']['allgroups'] = []
log.warning(
'An anidb adba exception occurred when attempting to get the release groups for the show {show}'
'\nError: {error}',
{'show': self.name, 'error': error}
)

data['config']['release']['ignoredWords'] = self.release_ignore_words
data['config']['release']['requiredWords'] = self.release_required_words
# Fetch data from external sources
if fetch:
# These are for now considered anime-only options, as they query anidb for available release groups.
if self.is_anime:
try:
data['config']['release']['allgroups'] = get_release_groups_for_anime(self.name)
except AnidbAdbaConnectionException as error:
data['config']['release']['allgroups'] = []
log.warning(
'An anidb adba exception occurred when attempting to get the release groups for the show {show}'
'\nError: {error}',
{'show': self.name, 'error': error}
)

if detailed:
episodes = self.get_all_episodes()
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@
"devDependencies": {
"dredd": "5.1.11",
"execa": "1.0.0",
"yargs": "12.0.1"
"yargs": "12.0.2"
}
}
4 changes: 3 additions & 1 deletion themes-default/slim/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"@babel/preset-env": "7.0.0",
"@babel/register": "7.0.0",
"@mapbox/stylelint-processor-arbitrary-tags": "0.2.0",
"@vue/test-utils": "1.0.0-beta.24",
"@vue/test-utils": "1.0.0-beta.25",
"ava": "1.0.0-beta.8",
"axios": "0.18.0",
"babel-loader": "8.0.2",
Expand All @@ -58,6 +58,7 @@
"gulp-changed": "3.2.0",
"gulp-imagemin": "4.1.0",
"imagemin-pngquant": "6.0.0",
"is-visible": "2.2.0",
"jquery": "3.3.1",
"lodash": "4.17.10",
"mini-css-extract-plugin": "0.4.2",
Expand All @@ -75,6 +76,7 @@
"vue-meta": "1.5.3",
"vue-native-websocket": "2.0.9",
"vue-router": "3.0.1",
"vue-scrollto": "2.11.0",
"vue-snotify": "3.2.1",
"vue-template-compiler": "2.5.17",
"vue-truncate-collapsed": "2.1.0",
Expand Down
6 changes: 3 additions & 3 deletions themes-default/slim/src/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const apiKey = document.body.getAttribute('api-key');
*/
const apiRoute = axios.create({ // eslint-disable-line no-unused-vars
baseURL: webRoot + '/',
timeout: 10000,
timeout: 30000,
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
Expand All @@ -20,7 +20,7 @@ const apiRoute = axios.create({ // eslint-disable-line no-unused-vars
*/
const apiv1 = axios.create({ // eslint-disable-line no-unused-vars
baseURL: webRoot + '/api/v1/' + apiKey + '/',
timeout: 10000,
timeout: 30000,
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
Expand All @@ -32,7 +32,7 @@ const apiv1 = axios.create({ // eslint-disable-line no-unused-vars
*/
const api = axios.create({ // eslint-disable-line no-unused-vars
baseURL: webRoot + '/api/v2/',
timeout: 10000,
timeout: 30000,
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Expand Down
Loading

0 comments on commit d646ccc

Please sign in to comment.