/** * This method deletes the Transmission transfer with the matching hash, and its data * * @return void * TODO: test delete :) */ function deleteTransmissionTransferWithData($uid, $hash) { deleteTransmissionTransfer($uid, $hash, true); }
/** * deletes a transfer * * @param $transfer name of the transfer * @return boolean of success */ function delete($transfer) { global $cfg; // set vars $this->_setVarsForTransfer($transfer); // log $this->logMessage($this->client . "-delete : " . $transfer . "\n", true); // only if vuze running and transfer exists in fluazu if (!Transmission::isRunning()) { array_push($this->messages, "Transmission not running, cannot stop transfer " . $transfer); return false; } $hash = getTransferHash($transfer); deleteTransmissionTransfer($cfg['uid'], $hash, false); // delete return $this->_delete(); }
/** * multi * * @param $action */ function dispatcher_multi($action) { global $cfg; // is enabled ? if ($cfg["enable_multiops"] != 1) { AuditAction($cfg["constants"]["error"], "ILLEGAL ACCESS: " . $cfg["user"] . " tried to use multi-op " . $action); @error("multiops are disabled", "", ""); } // messages-ary $dispatcherMessages = array(); // loop if (empty($_POST['transfer'])) { return; } foreach ($_POST['transfer'] as $key => $element) { // url-decode $transfer = urldecode($element); $isTransmissionTorrent = false; if ($cfg["transmission_rpc_enable"] && isHash($transfer)) { require_once 'inc/functions/functions.rpc.transmission.php'; $theTorrent = getTransmissionTransfer($transfer, array('id')); $isTransmissionTorrent = is_array($theTorrent); // $torrentId = $theTorrent['id']; if ($isTransmissionTorrent) { switch ($action) { case "transferData": deleteTransmissionTransfer($cfg['uid'], $transfer, true); $dispatcherMessages[] = "Torrent deleted with data"; break; case "transfer": deleteTransmissionTransfer($cfg['uid'], $transfer, false); $dispatcherMessages[] = "Torrent deleted"; break; } } } if (!$isTransmissionTorrent) { // is valid transfer ? + check permissions $invalid = true; if (tfb_isValidTransfer($transfer) === true) { if (substr($transfer, -8) == ".torrent") { // this is a torrent-client $invalid = false; } else { if (substr($transfer, -5) == ".wget") { // this is wget. $invalid = false; // is enabled ? if ($cfg["enable_wget"] == 0) { $invalid = true; AuditAction($cfg["constants"]["error"], "ILLEGAL ACCESS: " . $cfg["user"] . " tried to use wget"); array_push($dispatcherMessages, "wget is disabled : " . $transfer); } else { if ($cfg["enable_wget"] == 1) { if (!$cfg['isAdmin']) { $invalid = true; AuditAction($cfg["constants"]["error"], "ILLEGAL ACCESS: " . $cfg["user"] . " tried to use wget"); array_push($dispatcherMessages, "wget is disabled for users : " . $transfer); } } } } else { if (substr($transfer, -4) == ".nzb") { // This is nzbperl. $invalid = false; if ($cfg["enable_nzbperl"] == 0) { $invalid = true; AuditAction($cfg["constants"]["error"], "ILLEGAL ACCESS: " . $cfg["user"] . " tried to use nzbperl"); array_push($dispatcherMessages, "nzbperl is disabled : " . $transfer); } else { if ($cfg["enable_nzbperl"] == 1) { if (!$cfg['isAdmin']) { $invalid = true; AuditAction($cfg["constants"]["error"], "ILLEGAL ACCESS: " . $cfg["user"] . " tried to use nzbperl"); array_push($dispatcherMessages, "nzbperl is disabled for users : " . $transfer); } } } } } } } if ($invalid) { AuditAction($cfg["constants"]["error"], "INVALID TRANSFER: " . $cfg["user"] . " tried to " . $action . " " . $transfer); array_push($dispatcherMessages, "Invalid Transfer : " . $transfer); continue; } // client $client = getTransferClient($transfer); } // is transfer running ? $tRunningFlag = isTransferRunning($transfer); // action switch switch ($action) { case "transferStart": /* transferStart */ if (!$tRunningFlag) { $ch = ClientHandler::getInstance($client); $ch->start($transfer, false, FluxdQmgr::isRunning()); if (count($ch->messages) > 0) { $dispatcherMessages = array_merge($dispatcherMessages, $ch->messages); } } break; case "transferStop": /* transferStop */ if ($tRunningFlag) { $ch = ClientHandler::getInstance($client); $ch->stop($transfer); if (count($ch->messages) > 0) { $dispatcherMessages = array_merge($dispatcherMessages, $ch->messages); } } break; case "transferEnQueue": /* transferEnQueue */ if (!$tRunningFlag) { // enqueue it $ch = ClientHandler::getInstance($client); $ch->start($transfer, false, true); if (count($ch->messages) > 0) { $dispatcherMessages = array_merge($dispatcherMessages, $ch->messages); } } break; case "transferDeQueue": /* transferDeQueue */ if (!$tRunningFlag) { // dequeue it FluxdQmgr::dequeueTransfer($transfer, $cfg['user']); } break; case "transferResetTotals": /* transferResetTotals */ $msgs = resetTransferTotals($transfer, false); if (count($msgs) > 0) { $dispatcherMessages = array_merge($dispatcherMessages, $msgs); } break; default: if ($tRunningFlag) { // stop first $ch = ClientHandler::getInstance($client); $ch->stop($transfer); if (count($ch->messages) > 0) { $dispatcherMessages = array_merge($dispatcherMessages, $ch->messages); } // is transfer running ? $tRunningFlag = isTransferRunning($transfer); } // if it was running... hope the thing is down... // only continue if it is if (!$tRunningFlag) { switch ($action) { case "transferWipe": /* transferWipe */ $msgsDelete = deleteTransferData($transfer); if (count($msgsDelete) > 0) { $dispatcherMessages = array_merge($dispatcherMessages, $msgsDelete); } $msgsReset = resetTransferTotals($transfer, true); if (count($msgsReset) > 0) { $dispatcherMessages = array_merge($dispatcherMessages, $msgsReset); } break; case "transferData": /* transferData */ $msgsDelete = deleteTransferData($transfer); if (count($msgsDelete) > 0) { $dispatcherMessages = array_merge($dispatcherMessages, $msgsDelete); } case "transfer": /* transfer */ $ch = ClientHandler::getInstance($client); $ch->delete($transfer); if (count($ch->messages) > 0) { $dispatcherMessages = array_merge($dispatcherMessages, $ch->messages); } } } } // end switch } // end loop // error if messages if (count($dispatcherMessages) > 0) { @error("There were Problems", "", "", $dispatcherMessages); } }