Skip to content

Commit

Permalink
copy downlaod link and magnet link supports multi tasks
Browse files Browse the repository at this point in the history
  • Loading branch information
mayswind committed May 25, 2019
1 parent 00c9668 commit a500500
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 17 deletions.
54 changes: 42 additions & 12 deletions src/scripts/controllers/main.js
Expand Up @@ -69,24 +69,36 @@
return $rootScope.taskContext.getSelectedTaskIds().length > 0;
};

$scope.isSingleUrlTaskSelected = function () {
$scope.isSelectedTasksAllHaveUrl = function () {
var selectedTasks = $rootScope.taskContext.getSelectedTasks();

if (selectedTasks.length !== 1) {
if (selectedTasks.length < 1) {
return false;
}

return !!selectedTasks[0].singleUrl;
for (var i = 0; i < selectedTasks.length; i++) {
if (!selectedTasks[i].singleUrl) {
return false;
}
}

return true;
};

$scope.isSingleBittorrentHasInfoHashTaskSelected = function () {
$scope.isSelectedTasksAllHaveInfoHash = function () {
var selectedTasks = $rootScope.taskContext.getSelectedTasks();

if (selectedTasks.length !== 1) {
if (selectedTasks.length < 1) {
return false;
}

return !!selectedTasks[0].bittorrent && !!selectedTasks[0].infoHash;
for (var i = 0; i < selectedTasks.length; i++) {
if (!selectedTasks[i].bittorrent || !selectedTasks[i].infoHash) {
return false;
}
}

return true;
};

$scope.isSpecifiedTaskSelected = function () {
Expand Down Expand Up @@ -335,19 +347,37 @@
$rootScope.taskContext.selectAllCompleted();
};

$scope.copySelectedOneTaskDownloadLink = function () {
$scope.copySelectedTasksDownloadLink = function () {
var selectedTasks = $rootScope.taskContext.getSelectedTasks();
var result = '';

for (var i = 0; i < selectedTasks.length; i++) {
if (i > 0) {
result += '\n';
}

result += selectedTasks[i].singleUrl;
}

if (selectedTasks.length === 1) {
clipboard.copyText(selectedTasks[0].singleUrl);
if (result.length > 0) {
clipboard.copyText(result);
}
};

$scope.copySelectedOneTaskMagnetLink = function () {
$scope.copySelectedTasksMagnetLink = function () {
var selectedTasks = $rootScope.taskContext.getSelectedTasks();
var result = '';

for (var i = 0; i < selectedTasks.length; i++) {
if (i > 0) {
result += '\n';
}

result += 'magnet:?xt=urn:btih:' + selectedTasks[i].infoHash;
}

if (selectedTasks.length === 1) {
clipboard.copyText('magnet:?xt=urn:btih:' + selectedTasks[0].infoHash);
if (result.length > 0) {
clipboard.copyText(result);
}
};

Expand Down
10 changes: 5 additions & 5 deletions src/views/list.html
Expand Up @@ -176,15 +176,15 @@
<span translate>Select All</span>
</a>
</li>
<li class="divider" ng-if="isSingleUrlTaskSelected() || isSingleBittorrentHasInfoHashTaskSelected()"></li>
<li ng-if="isSingleUrlTaskSelected()">
<a tabindex="-1" class="pointer-cursor" title="{{'Copy Download Url' | translate}}" ng-click="copySelectedOneTaskDownloadLink()">
<li class="divider" ng-if="isSelectedTasksAllHaveUrl() || isSelectedTasksAllHaveInfoHash()"></li>
<li ng-if="isSelectedTasksAllHaveUrl()">
<a tabindex="-1" class="pointer-cursor" title="{{'Copy Download Url' | translate}}" ng-click="copySelectedTasksDownloadLink()">
<i class="fa fa-copy fa-fw"></i>
<span translate>Copy Download Url</span>
</a>
</li>
<li ng-if="isSingleBittorrentHasInfoHashTaskSelected()">
<a tabindex="-1" class="pointer-cursor" title="{{'Copy Magnet Link' | translate}}" ng-click="copySelectedOneTaskMagnetLink()">
<li ng-if="isSelectedTasksAllHaveInfoHash()">
<a tabindex="-1" class="pointer-cursor" title="{{'Copy Magnet Link' | translate}}" ng-click="copySelectedTasksMagnetLink()">
<i class="fa fa-copy fa-fw"></i>
<span translate>Copy Magnet Link</span>
</a>
Expand Down

0 comments on commit a500500

Please sign in to comment.