diff --git a/config/env/torrents.js b/config/env/torrents.js index 75233458..62c87188 100644 --- a/config/env/torrents.js +++ b/config/env/torrents.js @@ -1284,7 +1284,7 @@ module.exports = { * @resourcesLanguage: settings for language of dropdown resource info */ tmdbConfig: { - key: '7888f0042a366f63289ff571b68b7ce0', + key: 'this is access key from tmdb', tmdbHome: 'https://www.themoviedb.org', tmdbMovieLinkUrl: 'https://www.themoviedb.org/movie/', tmdbTvserialLinkUrl: 'https://www.themoviedb.org/tv/', diff --git a/modules/core/client/app/trans-string-en.js b/modules/core/client/app/trans-string-en.js index 2c5a47ba..70a3f958 100644 --- a/modules/core/client/app/trans-string-en.js +++ b/modules/core/client/app/trans-string-en.js @@ -1270,7 +1270,7 @@ BACKDROP_PATH: 'backdrop path', POSTER_PATH: 'poster path', CAST: 'cast:', - IMAGE_OVERVIEW: 'image overview:', + IMAGE_OVERVIEW: 'screenshots overview:', DIRECTOR: 'Director', ORIGINAL_NAME: 'original name', diff --git a/modules/core/client/app/trans-string-zh-tw.js b/modules/core/client/app/trans-string-zh-tw.js index 311173e9..bfc8d591 100644 --- a/modules/core/client/app/trans-string-zh-tw.js +++ b/modules/core/client/app/trans-string-zh-tw.js @@ -558,7 +558,7 @@ TMDB_IS_LOADING: '正在檢索視訊資訊,請稍候...', SELECT_SE: '• 請選擇電視劇季數並輸入本資源為本劇第幾集', SELECT_TAGS: '• 請為資源選擇合適的標籤', - SELECT_SCREEN_SHOTS: '• 請為資源選擇播放效果截圖', + SELECT_SCREEN_SHOTS: '• 請上傳資源預覽截圖', ENTER_VIDEO_NFO: '• 請輸入視訊和音訊的NFO資訊', SELECT_MAKER_GROUP: '• 請選擇您上傳時使用的資源小組', MAKER_NULL: '無', @@ -1270,7 +1270,7 @@ BACKDROP_PATH: '背景海報', POSTER_PATH: '海報', CAST: '主演:', - IMAGE_OVERVIEW: '圖片預覽:', + IMAGE_OVERVIEW: '截圖預覽:', DIRECTOR: '導演', ORIGINAL_NAME: '原劇名', diff --git a/modules/core/client/app/trans-string-zh.js b/modules/core/client/app/trans-string-zh.js index 65fdc132..61eacd9c 100644 --- a/modules/core/client/app/trans-string-zh.js +++ b/modules/core/client/app/trans-string-zh.js @@ -558,7 +558,7 @@ TMDB_IS_LOADING: '正在检索视频信息,请稍候...', SELECT_SE: '• 请选择电视剧季数并输入本资源为本剧第几集', SELECT_TAGS: '• 请为资源选择合适的标签', - SELECT_SCREEN_SHOTS: '• 请为资源选择播放效果截图', + SELECT_SCREEN_SHOTS: '• 请上传资源预览截图', ENTER_VIDEO_NFO: '• 请输入视频和音频的NFO信息', SELECT_MAKER_GROUP: '• 请选择您上传时使用的资源小组', MAKER_NULL: '无', @@ -1270,7 +1270,7 @@ BACKDROP_PATH: '背景海报', POSTER_PATH: '海报', CAST: '主演:', - IMAGE_OVERVIEW: '图片预览:', + IMAGE_OVERVIEW: '截图预览:', DIRECTOR: '导演', ORIGINAL_NAME: '原剧名', diff --git a/modules/core/client/directives/torrent-image-list-from-overview.client.directive.js b/modules/core/client/directives/torrent-image-list-from-overview.client.directive.js new file mode 100644 index 00000000..22253328 --- /dev/null +++ b/modules/core/client/directives/torrent-image-list-from-overview.client.directive.js @@ -0,0 +1,100 @@ +(function () { + 'use strict'; + + angular.module('core') + .directive('torrentImageListFromOverview', torrentImageListFromOverview); + + torrentImageListFromOverview.$inject = ['$sce', '$parse', '$compile', '$timeout']; + + function torrentImageListFromOverview($sce, $parse, $compile, $timeout) { + var directive = { + restrict: 'A', + priority: 10, + link: link + }; + + return directive; + + function link(scope, element, attrs) { + attrs.$observe('torrentImageListFromOverview', function (til) { + var targetNode = element[0]; + var config = {childList: true}; + var callback = function (mutationsList) { + angular.forEach(mutationsList, function (mutation) { + if (mutation.type === 'childList') { + organizeImage(); + } + }); + }; + + if (til) { + organizeImage(); + var observer = new MutationObserver(callback); + observer.observe(targetNode, config); + + //observer.disconnect(); + } + + /** + * organizeImage + */ + function organizeImage() { + var imgs = targetNode.querySelectorAll('img:not(.emoji)'); + + //remove + angular.forEach(imgs, function (i) { + if (i.parentElement.childElementCount === 1) { + angular.element(i.parentElement).remove(); + } else { + if (i.previousSibling && i.previousSibling.tagName.toUpperCase() === 'BR') { + angular.element(i.previousSibling).remove(); + } + angular.element(i).remove(); + } + }); + //reorganize + if (imgs.length > 0) { + var container = targetNode.parentNode; + if (attrs.hasOwnProperty('imgContainer')) { + container = document.getElementById(attrs.imgContainer); + } + + var imgDiv = container.querySelectorAll('.torrent-img-list'); + if (imgDiv) { + angular.element(imgDiv).remove(); + } + + var imgList = angular.element('
'); + + angular.forEach(imgs, function (i, idx) { + var item = angular.element(i); + var src = item.attr('src'); + var nsrc = src.substr(0, src.lastIndexOf('/') + 1) + 'crop/' + src.substr(src.lastIndexOf('/') + 1); + + item.attr('on-error-src', item.attr('src')); + item.attr('src', nsrc); + item.addClass('img-item'); + item.on('click', function (evt) { + if (attrs.imgClickEvent) { + scope.$eval(attrs.imgClickEvent, {event: {event: evt, imgs: imgs, index: idx}}); + } + }); + imgList.append(item); + }); + + angular.element(container).append(imgList); + angular.element(container).css('display', 'block'); + $compile(imgList.contents())(scope); + + //change overview height + var overviewDiv = targetNode.parentNode.querySelectorAll('.torrent-overview'); + if (overviewDiv) { + angular.element(overviewDiv).css('max-height', '200px'); + } + + } + } + }); + } + } +}()); diff --git a/modules/core/client/directives/torrent-image-list.client.directive.js b/modules/core/client/directives/torrent-image-list.client.directive.js index fe108309..70a36ee8 100644 --- a/modules/core/client/directives/torrent-image-list.client.directive.js +++ b/modules/core/client/directives/torrent-image-list.client.directive.js @@ -10,6 +10,9 @@ var directive = { restrict: 'A', priority: 10, + scope: { + imgs: '=' + }, link: link }; @@ -17,81 +20,55 @@ function link(scope, element, attrs) { attrs.$observe('torrentImageList', function (til) { - var targetNode = element[0]; - var config = {childList: true}; - var callback = function (mutationsList) { - angular.forEach(mutationsList, function (mutation) { - if (mutation.type === 'childList') { - organizeImage(); + if (til) { + if (!attrs.hasOwnProperty('imgs')) { + return console.error('no imgs attr is set in directive torrentImageList'); + } + + scope.$watch('imgs', function (newVal) { + if (newVal) { + organizeImage(newVal); } }); - }; - - if (til) { - organizeImage(); - var observer = new MutationObserver(callback); - observer.observe(targetNode, config); - - //observer.disconnect(); } /** * organizeImage */ - function organizeImage() { - var imgs = targetNode.querySelectorAll('img:not(.emoji)'); - - //remove - angular.forEach(imgs, function (i) { - if (i.parentElement.childElementCount === 1) { - angular.element(i.parentElement).remove(); - } else { - if (i.previousSibling && i.previousSibling.tagName.toUpperCase() === 'BR') { - angular.element(i.previousSibling).remove(); - } - angular.element(i).remove(); - } - }); + function organizeImage(imgs) { //reorganize - if (imgs.length > 0) { - var container = targetNode.parentNode; - if (attrs.hasOwnProperty('imgContainer')) { - container = document.getElementById(attrs.imgContainer); - } - - var imgDiv = container.querySelectorAll('.torrent-img-list'); + if (imgs && imgs.length > 0) { + var imgDiv = angular.element('.torrent-img-list'); if (imgDiv) { - angular.element(imgDiv).remove(); + imgDiv.remove(); } + var imgEleList = []; var imgList = angular.element(''); - angular.forEach(imgs, function (i, idx) { - var item = angular.element(i); - var src = item.attr('src'); - var nsrc = src.substr(0, src.lastIndexOf('/') + 1) + 'crop/' + src.substr(src.lastIndexOf('/') + 1); + angular.forEach(imgs, function (img, idx) { + var item = angular.element('