PageRenderTime 1694ms CodeModel.GetById 13ms RepoModel.GetById 1ms app.codeStats 0ms

/rutorrent/home/index.php

https://gitlab.com/billyprice1/QuickBox
PHP | 661 lines | 596 code | 58 blank | 7 comment | 116 complexity | 302e9c650e7e7a7973ef7dfa2a854065 MD5 | raw file
  1. <?php
  2. session_destroy();
  3. include '/srv/rutorrent/php/util.php';
  4. include 'req/class.php';
  5. $interface = "eth0";
  6. $version = "qb-version";
  7. error_reporting(E_ALL);
  8. $master = shell_exec('sudo -u root cat /root/master.txt');
  9. $username = getUser();
  10. function session_start_timeout($timeout=5, $probability=100, $cookie_domain='/') {
  11. ini_set("session.gc_maxlifetime", $timeout);
  12. ini_set("session.cookie_lifetime", $timeout);
  13. $seperator = strstr(strtoupper(substr(PHP_OS, 0, 3)), "WIN") ? "\\" : "/";
  14. $path = ini_get("session.save_path") . $seperator . "session_" . $timeout . "sec";
  15. if(!file_exists($path)) {
  16. if(!mkdir($path, 600)) {
  17. trigger_error("Failed to create session save path directory '$path'. Check permissions.", E_USER_ERROR);
  18. }
  19. }
  20. ini_set("session.save_path", $path);
  21. ini_set("session.gc_probability", $probability);
  22. ini_set("session.gc_divisor", 100);
  23. session_start();
  24. if(isset($_COOKIE[session_name()])) {
  25. setcookie(session_name(), $_COOKIE[session_name()], time() + $timeout, $cookie_domain);
  26. }
  27. }
  28. session_start_timeout(5);
  29. $MSGFILE = session_id();
  30. function processExists($processName, $username) {
  31. $exists= false;
  32. exec("ps axo user:20,pid,pcpu,pmem,vsz,rss,tty,stat,start,time,comm|grep $username | grep -iE $processName | grep -v grep", $pids);
  33. if (count($pids) > 0) {
  34. $exists = true;
  35. }
  36. return $exists;
  37. }
  38. $rtorrent = processExists("\"main|rtorrent\"",$username);
  39. $irssi = processExists("irssi",$username);
  40. $btsync = processExists("btsync",$username);
  41. $plex = processExists("Plex",$username);
  42. function isEnabled($search, $username){
  43. $string = file_get_contents('/home/'.$username.'/.startup');
  44. $service = $search;
  45. if(preg_match("/\b".$search."\b/", $string)){
  46. return " <div class=\"toggle-wrapper pull-right\"><div class=\"toggle-en toggle-light primary\" onclick=\"location.href='?id=77&serviceend=$service'\"></div></div>";
  47. } else {
  48. return " <div class=\"toggle-wrapper pull-right\"><div class=\"toggle-dis toggle-light primary\" onclick=\"location.href='?id=66&servicestart=$service'\"></div></div>";
  49. }
  50. }
  51. function writeMsg($message) {
  52. $file = $GLOBALS['MSGFILE'];
  53. $Handle = fopen("/tmp/" . $file, 'w');
  54. fwrite($Handle, $message);
  55. fclose($Handle);
  56. }
  57. function readMsg() {
  58. $file = $GLOBALS['MSGFILE'];
  59. $Handle = fopen("/tmp/" . $file, 'r');
  60. $output = fgets($Handle);
  61. fclose($Handle);
  62. if (isset($output)) {
  63. $data = $output;
  64. echo $data;
  65. } else {
  66. echo "error";
  67. }
  68. }
  69. $plexURL = "http://" . $_SERVER['HTTP_HOST'] . ":32400/web/";
  70. $btsyncURL = "http://" . $_SERVER['HTTP_HOST'] . ":8888/gui/";
  71. $reload='';
  72. $service='';
  73. if ($rtorrent == "1") { $rval = "RTorrent <span class=\"label label-success pull-right\">Enabled</span>";
  74. } else { $rval = "RTorrent <span class=\"label label-danger pull-right\">Disabled</span>";
  75. }
  76. if ($irssi == "1") { $ival = "iRSSi-Autodl <span class=\"label label-success pull-right\">Enabled</span>";
  77. } else { $ival = "iRSSi-Autodl <span class=\"label label-danger pull-right\">Disabled</span>";
  78. }
  79. if ($btsync == "1") { $bval = "BTSync <span class=\"label label-success pull-right\">Enabled</span>";
  80. } else { $bval = "BTSync <span class=\"label label-danger pull-right\">Disabled</span>";
  81. }
  82. if ($_GET['serviceend']) {
  83. $thisname = $_GET['serviceend'];
  84. $thisname = str_replace(['yes', 'no', '!!~!!'], ['!!~!!', 'yes', 'no'], $thisname);
  85. }
  86. if ($_GET['servicestart']) {
  87. $thisname=str_replace(['yes', 'no', '!!~!!'], ['!!~!!', 'yes', 'no'], $thisname);
  88. $thisname = $_GET['servicestart'];
  89. }
  90. if ($_GET['reload']) {
  91. shell_exec("sudo -u " . $username . " /usr/bin/reload");
  92. $myUrl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && !in_array(strtolower($_SERVER['HTTPS']),array('off','no'))) ? 'https' : 'http';
  93. $myUrl .= '://'.$_SERVER['HTTP_HOST'];
  94. $newURL = $myURL;
  95. header('Location: /');
  96. }
  97. include 'req/plugin_data.php';
  98. include 'req/package_data.php';
  99. $base = 1024;
  100. $location = "/home";
  101. /* check for services */
  102. switch (intval($_GET['id'])) {
  103. case 0:
  104. if (file_exists('/home/'.$username.'/.startup')) {
  105. $cbodyhello .= 'Hey <b>' . $username . '</b>: Please click switch On/Off Once and wait atleast 90 seconds for the changes to take affect ... <br><br><br>';
  106. $rtorrent = isEnabled("RTORRENT_CLIENT=yes", $username);
  107. $cbodyr .= "RTorrent ". $rtorrent;
  108. $irssi = isEnabled("IRSSI_CLIENT=yes", $username);
  109. $cbodyi .= "iRSSi-AutoDL ". $irssi;
  110. $btsync = isEnabled("BTSYNC=yes", $username);
  111. $cbodyb .= "BTSync ". $btsync;
  112. } else {
  113. $cbodyerr .= "error locating start up script .. feel free to open a issue at the quick box repo";
  114. }
  115. break;
  116. /* start services */
  117. case 66:
  118. $name = $_GET['servicestart'];
  119. $thisname=str_replace(['yes', 'no', '!!~!!'], ['!!~!!', 'yes', 'no'], $name);
  120. if (file_exists('/home/'.$username.'/.startup')) {
  121. if ($name == "BTSYNC=yes") { $servicename = "btsync"; } else { $output = substr($thisname, 0, strpos(strtolower($thisname), '_')); $servicename = strtolower($output); }
  122. writeMsg("Hey <b>$username</b>: Im going to enable <b>$servicename</b> ... Please allow 5 minutes for it to start ... </a><br>");
  123. $message = "Hey <b>$username</b>: Im going to enable <b>$servicename</b> ... Please allow 5 minutes for it to start ... </a><br>";
  124. shell_exec("sudo sed -i 's/$thisname/$name/g' /home/$username/.startup");
  125. $output = substr($thisname, 0, strpos(strtolower($thisname), '_'));
  126. //writeMsg("Starting: <b> " . $servicename . "</b>");
  127. } else {
  128. writeMsg("error locating .startup .. feel free to open a issue at the quick box repo");
  129. $message = "error locating .startup .. feel free to open a issue at the quick box repo";
  130. }
  131. header('Location: https://' . $_SERVER['HTTP_HOST'] . '/');
  132. break;
  133. /* disable services */
  134. case 77:
  135. $name = $_GET['serviceend'];
  136. $thisname=str_replace(['yes', 'no', '!!~!!'], ['!!~!!', 'yes', 'no'], $name);
  137. if (file_exists('/home/'.$username.'/.startup')) {
  138. if ($name == "BTSYNC=yes") { $servicename = "btsync"; } else { $output = substr($thisname, 0, strpos(strtolower($thisname), '_')); $servicename = strtolower($output);
  139. if (strpos($servicename,'rtorrent') !== false) { $servicename="main"; } }
  140. writeMsg("Hello <b>$username</b>: Im going to disable <b>$servicename</b> ... </a><br>");
  141. $message = "Hello <b>$username</b>: Im going to disable <b>$servicename</b> ... </a><br>";
  142. shell_exec("sudo sed -i 's/$name/$thisname/g' /home/$username/.startup");
  143. shell_exec("sudo -u $username pkill -9 $servicename");
  144. } else {
  145. writeMsg("error locating .startup .. feel free to open an issue at the quick box repo");
  146. $message = "error locating .startup .. feel free to open an issue at the quick box repo";
  147. }
  148. header('Location: https://' . $_SERVER['HTTP_HOST'] . '/');
  149. break;
  150. }
  151. ?>
  152. <html lang="en">
  153. <head>
  154. <!-- META -->
  155. <meta charset="utf-8">
  156. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
  157. <meta name="description" content="">
  158. <meta name="author" content="">
  159. <title>Your Seedbox Dashboard</title>
  160. <!-- CSS STYLESHEETS AND ASSETTS -->
  161. <link rel="shortcut icon" href="/rutorrent/images/favicon-32x32.png" type="image/png">
  162. <link rel="stylesheet" href="lib/jquery-ui/jquery-ui.css">
  163. <link rel="stylesheet" href="lib/Hover/hover.css">
  164. <link rel="stylesheet" href="lib/jquery-toggles/toggles-full.css">
  165. <link rel="stylesheet" href="lib/jquery.gritter/jquery.gritter.css">
  166. <link rel="stylesheet" href="lib/animate.css/animate.css">
  167. <link rel="stylesheet" href="lib/font-awesome/font-awesome.css">
  168. <link rel="stylesheet" href="lib/ionicons/css/ionicons.css">
  169. <link rel="stylesheet" href="skins/quick.css">
  170. <!-- JAVASCRIPT -->
  171. <script src="lib/modernizr/modernizr.js"></script>
  172. <script src="lib/jquery/jquery.js"></script>
  173. <script type="text/javascript" src="lib/flot/jquery.flot.js"></script>
  174. <script type="text/javascript" src="lib/flot/jquery.flot.time.js"></script>
  175. <script type="text/javascript" src="lib/flot/jquery.flot.resize.js"></script>
  176. <script type="text/javascript" src="lib/flot/jquery.flot.canvas.js"></script>
  177. <script id="source" language="javascript" type="text/javascript">
  178. $(document).ready(function() {
  179. var options = {
  180. lines: { show: true },
  181. border: { show: true },
  182. points: { show: true },
  183. xaxis: { mode: "time" }
  184. };
  185. var data = [];
  186. var placeholder = $("#placeholder");
  187. $.plot(placeholder, data, options);
  188. var iteration = 0;
  189. function fetchData() {
  190. ++iteration;
  191. function onDataReceived(series) {
  192. // we get all the data in one go, if we only got partial
  193. // data, we could merge it with what we already got
  194. data = [ series ];
  195. $.plot($("#placeholder"), data, options);
  196. fetchData();
  197. }
  198. $.ajax({
  199. url: "req/data.php",
  200. method: 'GET',
  201. dataType: 'json',
  202. success: onDataReceived
  203. });
  204. }
  205. setTimeout(fetchData, 1000);
  206. });
  207. </script>
  208. <script language="javascript" type="text/javascript">
  209. $(document).ready(function() {
  210. function uptime() {
  211. $.ajax({url: "req/up.php", cache:true, success: function (result) {
  212. $('#uptime').html(result);
  213. setTimeout(function(){uptime()}, 1000);
  214. }});
  215. }
  216. uptime();
  217. function sload() {
  218. $.ajax({url: "req/load.php", cache:true, success: function (result) {
  219. $('#cpuload').html(result);
  220. setTimeout(function(){sload()}, 1000);
  221. }});
  222. }
  223. sload();
  224. function bwtables() {
  225. $.ajax({url: "req/bw_tables.php", cache:false, success: function (result) {
  226. $('#bw_tables').html(result);
  227. setTimeout(function(){bwtables()}, 1000);
  228. }});
  229. }
  230. bwtables();
  231. function diskstats() {
  232. $.ajax({url: "req/disk_data.php", cache:false, success: function (result) {
  233. $('#disk_data').html(result);
  234. setTimeout(function(){diskstats()}, 1000);
  235. }});
  236. }
  237. diskstats();
  238. });
  239. //success: function (result)
  240. </script>
  241. <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
  242. <!--[if lt IE 9]>
  243. <script src="../lib/html5shiv/html5shiv.js"></script>
  244. <script src="../lib/respond/respond.src.js"></script>
  245. <![endif]-->
  246. </head>
  247. <body class="body ps-container">
  248. <header>
  249. <div class="headerpanel">
  250. <div class="logopanel">
  251. <h2><a href="#"><img src="/img/logo.png" alt="Quick Box Seedbox" class="logo-image" height="50" /></a></h2>
  252. </div><!-- logopanel -->
  253. <div class="headerbar">
  254. <a id="menuToggle" class="menutoggle"><i class="fa fa-bars"></i></a>
  255. <div class="header-right">
  256. <ul class="headermenu">
  257. <li>
  258. <div class="btn-group">
  259. <button type="button" class="btn btn-logged" data-toggle="dropdown">
  260. <?php echo "$username"; ?>
  261. <span class="caret"></span>
  262. </button>
  263. <ul class="dropdown-menu pull-right">
  264. <li><a href="https://github.com/Swizards/QuickBox/issues"><i class="fa fa-warning text-warning"></i> Report an issue</a></li>
  265. <div class="usermenu-div"></div>
  266. <li><span style="font-size:10px;">You are running Quick Box <b><?php echo "$version"; ?></b></span></li>
  267. <li><span style="font-size:10px;">courtesy of <b><a href="https://swizards.net" target="_blank" rel="noindex,nofollow">swizards.net</a></b></li>
  268. </ul>
  269. </div>
  270. </li>
  271. </ul>
  272. </div><!-- header-right -->
  273. </div><!-- headerbar -->
  274. </div><!-- header-->
  275. </header>
  276. <section>
  277. <div class="leftpanel ps-container">
  278. <div class="leftpanelinner">
  279. <ul class="nav nav-tabs nav-justified nav-sidebar">
  280. <li class="tooltips active" data-toggle="tooltip" title="Main Menu" data-placement="bottom"><a data-toggle="tab" data-target="#mainmenu"><i class="tooltips fa fa-ellipsis-h"></i></a></li>
  281. <?php
  282. if ($username == "$master"){
  283. echo "<li class=\"tooltips\" data-toggle=\"tooltip\" title=\"ruTorrent Plugins Menu\" data-placement=\"bottom\"><a data-toggle=\"tab\" data-target=\"#plugins\"><i class=\"tooltips fa fa-puzzle-piece\"></i></a></li>";
  284. }
  285. ?>
  286. <li class="tooltips" data-toggle="tooltip" title="Help Commands & More" data-placement="bottom"><a data-toggle="tab" data-target="#help"><i class="tooltips fa fa-question-circle"></i></a></li>
  287. </ul>
  288. <div class="tab-content">
  289. <!-- ################# MAIN MENU ################### -->
  290. <div class="tab-pane active" id="mainmenu">
  291. <h5 class="sidebar-title">Main Menu</h5>
  292. <ul class="nav nav-pills nav-stacked nav-quirk">
  293. <li class="active"><a href="index.php"><i class="fa fa-home"></i> <span>Dashboard</span></a></li>
  294. <li><a href="/rutorrent" target="_blank"><i class="fa fa-share"></i> <span>ruTorrent</span></a></li>
  295. <?php if (processExists("btsync",$username)) { echo "<li><a href=\"$btsyncURL\" target=\"_blank\"><i class=\"fa fa-retweet\"></i> <span>BTSync</span></a></li>"; } ?>
  296. <?php if (file_exists('.plex')) { echo "<li><a href=\"$plexURL\" target=\"_blank\"><i class=\"fa fa-play\"></i> <span>Plex</span></a></li>"; } ?>
  297. <li class="nav-parent">
  298. <a href=""><i class="fa fa-download"></i> <span>Downloads</span></a>
  299. <ul class="children">
  300. <li><a href="/<?php echo "$username"; ?>.downloads" target="_blank">ruTorrent</a></a></li>
  301. </ul>
  302. </li>
  303. <li><a href="?reload=true"><i class="fa fa-refresh"></i> <span>Reload Services</span></a></li>
  304. <li><a href="/<?php echo "$username"; ?>.console"><i class="fa fa-keyboard-o"></i> <span>Web Console</span></a></li>
  305. <?php
  306. if ($username == "$master"){
  307. echo "<li class=\"nav-parent\"> <a href=\"\"><i class=\"fa fa-cubes\"></i> <span>Packages</span></a>";
  308. echo "<ul class=\"children\">";
  309. echo "<li class=\"info-quote\"><p class=\"info-quote\">Easily install and uninstall any software package simply by clicking on the software package name</p></li>";
  310. echo "<li class=\"warning-quote\"><p class=\"warning-quote\">Please be advised that these options are not the same as enabling and disabling a software package. These options are designed to either install or uninstall.</p></li>";
  311. echo "<li>";
  312. if (file_exists('/srv/rutorrent/home/.plex')) {
  313. echo "<a href=\"javascript:void()\" data-toggle=\"modal\" data-target=\"#plexRemovalConfirm\">Plex Media Server : <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  314. } else {
  315. echo "<a href=\"?installpackage-plex=true\" id=\"plexInstall\">Plex Media Server : <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  316. }
  317. echo "</li>";
  318. echo "<li>";
  319. if (file_exists("/home/$username/.sync/sync.pid")) {
  320. echo "<a href=\"javascript:void()\" data-toggle=\"modal\" data-target=\"#btsyncRemovalConfirm\">BTSync : <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  321. } else {
  322. echo "<a href=\"?installpackage-btsync=true\" id=\"btsyncInstall\">BTSync : <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  323. }
  324. echo "</li>";
  325. echo "</ul>";
  326. echo "</li>";
  327. } ?>
  328. </ul>
  329. </div><!-- tab pane -->
  330. <!-- ######################## HELP MENU TAB ##################### -->
  331. <div class="tab-pane" id="help">
  332. <h5 class="sidebar-title">Quick System Tips</h5>
  333. <?php
  334. if ($username == "$master"){
  335. echo "<ul class=\"nav nav-pills nav-stacked nav-quirk nav-mail\">";
  336. echo "<li style=\"padding: 7px\"><span style=\"font-size: 12px; color:#eee\">disktest</span><br/>";
  337. echo "<small>Type this command to perform a quick r/w test of your disk.</small></li>";
  338. echo "<li style=\"padding: 7px\"><span style=\"font-size: 12px; color:#eee\">fixhome</span><br/>";
  339. echo "<small>Type this command to quickly adjusts /home directory permissions.</small></li>";
  340. echo "</ul>";
  341. echo "<h5 class=\"sidebar-title\">Admin Commands</h5>";
  342. echo "<ul class=\"nav nav-pills nav-stacked nav-quirk nav-mail\">";
  343. echo "<li style=\"padding: 7px\"><span style=\"font-size: 12px; color:#eee\">setdisk</span><br/>";
  344. echo "<small>Type this command in ssh to allocate the amount of disk space you would like to give to a user.</small></li>";
  345. echo "<li style=\"padding: 7px\"><span style=\"font-size: 12px; color:#eee\">createSeedboxUser</span><br/>";
  346. echo "<small>Type this command in ssh to create a new seedbox user on your server.</small></li>";
  347. echo "<li style=\"padding: 7px\"><span style=\"font-size: 12px; color:#eee\">deleteSeedboxUser</span><br/>";
  348. echo "<small>Type this command in ssh to delete a seedbox user on your server. You will need to enter the users account name, you will be prompted.</small></li>";
  349. echo "<li style=\"padding: 7px\"><span style=\"font-size: 12px; color:#eee\">changeUserpass</span><br/>";
  350. echo "<small>Typing this command in ssh allows you to change a disired users password.</small></li>";
  351. echo "<li style=\"padding: 7px\"><span style=\"font-size: 12px; color:#eee\">sudo -u [username] reload</span><br/>";
  352. echo "<small>Type this command in ssh to reload all services on a specific users seedbox. These services include rTorrent and IRSSI only.</small></li>";
  353. echo "<li style=\"padding: 7px\"><span style=\"font-size: 12px; color:#eee\">upgradeBTSync</span><br/>";
  354. echo "<small>Type this command in ssh to upgrade BTSync to newest version when available.</small></li>";
  355. echo "</ul>";
  356. echo "<h5 class=\"sidebar-title\">Essential User Commands</h5>";
  357. } ?>
  358. <ul class="nav nav-pills nav-stacked nav-quirk nav-mail">
  359. <li style="padding: 7px"><span style="font-size: 12px; color:#eee">reload</span><br/>
  360. <small>allows user to reload their services (rtorrent and irssi)</small></li>
  361. <li style="padding: 7px"><span style="font-size: 12px; color:#eee">screen -fa -dmS rtorrent rtorrent</span><br/>
  362. <small>allows user to restart/remount rtorrent from SSH</small></li>
  363. <li style="padding: 7px"><span style="font-size: 12px; color:#eee">screen -fa -dmS irssi irssi</span><br/>
  364. <small>allows user to restart/remount irssi from SSH</small></li>
  365. </ul>
  366. </div><!-- tab-pane -->
  367. <!-- ######################## RUTORRENT PLUGINS TAB ##################### -->
  368. <div class="tab-pane" id="plugins">
  369. <h5 class="sidebar-title">Plugin Menu</h5>
  370. <ul class="nav nav-pills nav-stacked nav-quirk">
  371. <li class="nav-parent nav-active">
  372. <a href=""><i class="fa fa-puzzle-piece"></i> <span>Plugins</span></a>
  373. <ul class="children">
  374. <li class="info-quote"><p class="info-quote">Easily install and uninstall ruTorrent plugins simply by clicking on the plugin name</p></li>
  375. <?php
  376. echo "<li>";
  377. if (file_exists('/srv/rutorrent/plugins/_getdir/plugin.info')) {
  378. echo "<a href=\"?removeplugin-getdir=true\">_getdir <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plug-in provides the possibility of comfortable navigation on a host file system.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  379. } else {
  380. echo "<a href=\"?installplugin-getdir=true\">_getdir <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plug-in provides the possibility of comfortable navigation on a host file system.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  381. }
  382. echo "</li>";
  383. echo "<li>";
  384. if (file_exists('/srv/rutorrent/plugins/_noty2/plugin.info')) {
  385. echo "<a href=\"?removeplugin-noty=true\">_noty/_noty2 <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin provides the notification functionality for other plugins.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  386. } else {
  387. echo "<a href=\"?installplugin-noty=true\">_noty/_noty2 <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin provides the notification functionality for other plugins.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  388. }
  389. echo "</li>";
  390. echo "<li>";
  391. if (file_exists('/srv/rutorrent/plugins/_task/plugin.info')) {
  392. echo "<a href=\"?removeplugin-task=true\">_task <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin provides the possibility of running various scripts on the host system.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  393. } else {
  394. echo "<a href=\"?installplugin-task=true\">_task <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin provides the possibility of running various scripts on the host system.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  395. }
  396. echo "</li>";
  397. echo "<li>";
  398. if (file_exists('/srv/rutorrent/plugins/autodl-irssi/plugin.info')) {
  399. echo "<a href=\"?removeplugin-autodl=true\">autodl-irssi <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"GUI for autodl-irssi-community\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  400. } else {
  401. echo "<a href=\"?installplugin-autodl=true\">autodl-irssi <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"GUI for autodl-irssi-community\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  402. }
  403. echo "</li>";
  404. echo "<li>";
  405. if (file_exists('/srv/rutorrent/plugins/autotools/plugin.info')) {
  406. echo "<a href=\"?removeplugin-autotools=true\">autotools <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin provides some possibilities on automation.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  407. } else {
  408. echo "<a href=\"?installplugin-autotools=true\">autotools <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin provides some possibilities on automation.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  409. }
  410. echo "</li>";
  411. echo "<li>";
  412. if (file_exists('/srv/rutorrent/plugins/check_port/plugin.info')) {
  413. echo "<a href=\"?removeplugin-checkport=true\">checkport <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin adds an incoming port status indicator to the bottom bar.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  414. } else {
  415. echo "<a href=\"?installplugin-checkport=true\">checkport <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin adds an incoming port status indicator to the bottom bar.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  416. }
  417. echo "</li>";
  418. echo "<li>";
  419. if (file_exists('/srv/rutorrent/plugins/chunks/plugin.info')) {
  420. echo "<a href=\"?removeplugin-chunks=true\">chunks <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin shows the download status of torrent chunks.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  421. } else {
  422. echo "<a href=\"?installplugin-chunks=true\">chunks <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin shows the download status of torrent chunks.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  423. }
  424. echo "</li>";
  425. echo "<li>";
  426. if (file_exists('/srv/rutorrent/plugins/cookies/plugin.info')) {
  427. echo "<a href=\"?removeplugin-cookies=true\">cookies <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin provides cookies information for authentication on trackers.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  428. } else {
  429. echo "<a href=\"?installplugin-cookies=true\">cookies <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin provides cookies information for authentication on trackers.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  430. }
  431. echo "</li>";
  432. echo "<li>";
  433. if (file_exists('/srv/rutorrent/plugins/cpuload/plugin.info')) {
  434. echo "<a href=\"?removeplugin-cpuload=true\">cpuload <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin adds a CPU Load indicator to the bottom bar.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  435. } else {
  436. echo "<a href=\"?installplugin-cpuload=true\">cpuload <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin adds a CPU Load indicator to the bottom bar.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  437. }
  438. echo "</li>";
  439. echo "<li>";
  440. if (file_exists('/srv/rutorrent/plugins/create/plugin.info')) {
  441. echo "<a href=\"?removeplugin-create=true\">create <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows for the creation of new .torrent files.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  442. } else {
  443. echo "<a href=\"?installplugin-create=true\">create <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows for the creation of new .torrent files.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  444. }
  445. echo "</li>";
  446. echo "<li>";
  447. if (file_exists('/srv/rutorrent/plugins/data/plugin.info')) {
  448. echo "<a href=\"?removeplugin-data=true\">data <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows to copy torrent data files from the host to the local machine.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  449. } else {
  450. echo "<a href=\"?installplugin-data=true\">data <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows to copy torrent data files from the host to the local machine.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  451. }
  452. echo "</li>";
  453. echo "<li>";
  454. if (file_exists('/srv/rutorrent/plugins/datadir/plugin.info')) {
  455. echo "<a href=\"?removeplugin-datadir=true\">datadir <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin is intended for moving torrent data files.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  456. } else {
  457. echo "<a href=\"?installplugin-datadir=true\">datadir <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin is intended for moving torrent data files.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  458. }
  459. echo "</li>";
  460. echo "<li>";
  461. if (file_exists('/srv/rutorrent/plugins/diskspace/plugin.info')) {
  462. echo "<a href=\"?removeplugin-diskspace=true\">diskspace <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin adds an easy to read disk meter to the bottom bar.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  463. } else {
  464. echo "<a href=\"?installplugin-diskspace=true\">diskspace <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin adds an easy to read disk meter to the bottom bar.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  465. }
  466. echo "</li>";
  467. echo "<li>";
  468. if (file_exists('/srv/rutorrent/plugins/edit/plugin.info')) {
  469. echo "<a href=\"?removeplugin-edit=true\">edit <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows to edit the list of trackers and change the comment of the current torrent.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  470. } else {
  471. echo "<a href=\"?installplugin-edit=true\">edit <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows to edit the list of trackers and change the comment of the current torrent.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  472. }
  473. echo "</li>";
  474. echo "<li>";
  475. if (file_exists('/srv/rutorrent/plugins/erasedata/plugin.info')) {
  476. echo "<a href=\"?removeplugin-erasedata=true\">erasedata <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows to delete torrent data along with .torrent file.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  477. } else {
  478. echo "<a href=\"?installplugin-erasedata=true\">erasedata <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows to delete torrent data along with .torrent file.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  479. }
  480. echo "</li>";
  481. echo "<li>";
  482. if (file_exists('/srv/rutorrent/plugins/extratio/plugin.info')) {
  483. echo "<a href=\"?removeplugin-extratio=true\">extratio <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin extends the functionality of the ratio plugin.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  484. } else {
  485. echo "<a href=\"?installplugin-extratio=true\">extratio <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin extends the functionality of the ratio plugin.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  486. }
  487. echo "</li>";
  488. echo "<li>";
  489. if (file_exists('/srv/rutorrent/plugins/extsearch/plugin.info')) {
  490. echo "<a href=\"?removeplugin-extsearch=true\">extsearch <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows to search many popular torrent sites for content from within ruTorrent.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  491. } else {
  492. echo "<a href=\"?installplugin-extsearch=true\">extsearch <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows to search many popular torrent sites for content from within ruTorrent.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  493. }
  494. echo "</li>";
  495. echo "<li>";
  496. if (file_exists('/srv/rutorrent/plugins/feeds/plugin.info')) {
  497. echo "<a href=\"?removeplugin-feeds=true\">feeds <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin is intended for making RSS feeds with information of torrents.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  498. } else {
  499. echo "<a href=\"?installplugin-feeds=true\">feeds <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin is intended for making RSS feeds with information of torrents.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  500. }
  501. echo "</li>";
  502. echo "<li>";
  503. if (file_exists('/srv/rutorrent/plugins/filedrop/plugin.info')) {
  504. echo "<a href=\"?removeplugin-filedrop=true\">filedrop <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows users to drag multiple torrents from desktop to the browser (FF > 3.6 & Chrome only).\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  505. } else {
  506. echo "<a href=\"?installplugin-filedrop=true\">filedrop <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows users to drag multiple torrents from desktop to the browser (FF > 3.6 & Chrome only).\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  507. }
  508. echo "</li>";
  509. echo "<li>";
  510. if (file_exists('/srv/rutorrent/plugins/filemanager/plugin.info')) {
  511. echo "<a href=\"?removeplugin-filemanager=true\">filemanager <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"File Manager plugin.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  512. } else {
  513. echo "<a href=\"?installplugin-filemanager=true\">filemanager <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"File Manager plugin.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  514. }
  515. echo "</li>";
  516. echo "<li>";
  517. if (file_exists('/srv/rutorrent/plugins/fileshare/plugin.info')) {
  518. echo "<a href=\"?removeplugin-fileshare=true\">fileshare <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"File share plugin. (Please note: This plugin is dependent on the filemanager plugin)\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  519. } else {
  520. echo "<a href=\"?installplugin-fileshare=true\">fileshare <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"File share plugin. (Please note: This plugin is dependent on the filemanager plugin)\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  521. }
  522. echo "</li>";
  523. echo "<li>";
  524. if (file_exists('/srv/rutorrent/plugins/fileupload/plugin.info')) {
  525. echo "<a href=\"?removeplugin-fileupload=true\">fileupload <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"Sharing services file uploader. (Please note: This plugin is dependent on the filemanager plugin as well as plowup to be installed - which is by default)\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  526. } else {
  527. echo "<a href=\"?installplugin-fileupload=true\">fileupload <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"Sharing services file uploader. (Please note: This plugin is dependent on the filemanager plugin as well as plowup to be installed - which is by default)\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  528. }
  529. echo "</li>";
  530. echo "<li>";
  531. if (file_exists('/srv/rutorrent/plugins/history/plugin.info')) {
  532. echo "<a href=\"?removeplugin-history=true\">history <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin is designed to log a history of torrents.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  533. } else {
  534. echo "<a href=\"?installplugin-history=true\">history <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin is designed to log a history of torrents.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  535. }
  536. echo "</li>";
  537. echo "<li>";
  538. if (file_exists('/srv/rutorrent/plugins/httprpc/plugin.info')) {
  539. echo "<a href=\"?removeplugin-httprpc=true\">httprpc <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin is a low-traffic replacement for the mod_scgi webserver module.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  540. } else {
  541. echo "<a href=\"?installplugin-httprpc=true\">httprpc <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin is a low-traffic replacement for the mod_scgi webserver module.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  542. }
  543. echo "</li>";
  544. echo "<li>";
  545. if (file_exists('/srv/rutorrent/plugins/ipad/plugin.info')) {
  546. echo "<a href=\"?removeplugin-ipad=true\">ipad <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows ruTorrent to work properly on iPad-like devices. (Not compatible with the mobile plugin)\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  547. } else {
  548. echo "<a href=\"?installplugin-ipad=true\">ipad <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows ruTorrent to work properly on iPad-like devices. (Not compatible with the mobile plugin)\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  549. }
  550. echo "</li>";
  551. echo "<li>";
  552. if (file_exists('/srv/rutorrent/plugins/loginmgr/plugin.info')) {
  553. echo "<a href=\"?removeplugin-loginmgr=true\">loginmgr <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin is used to login to torrent sites in cases where cookies fail.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  554. } else {
  555. echo "<a href=\"?installplugin-loginmgr=true\">loginmgr <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin is used to login to torrent sites in cases where cookies fail.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  556. }
  557. echo "</li>";
  558. echo "<li>";
  559. if (file_exists('/srv/rutorrent/plugins/logoff/plugin.info')) {
  560. echo "<a href=\"?removeplugin-logoff=true\">logoff <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"The plugin allows users to logoff from rutorrent.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  561. } else {
  562. echo "<a href=\"?installplugin-logoff=true\">logoff <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"The plugin allows users to logoff from rutorrent.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  563. }
  564. echo "</li>";
  565. echo "<li>";
  566. if (file_exists('/srv/rutorrent/plugins/lookat/plugin.info')) {
  567. echo "<a href=\"?removeplugin-lookat=true\">lookat <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows to search for torrent name in external sources.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  568. } else {
  569. echo "<a href=\"?installplugin-lookat=true\">lookat <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows to search for torrent name in external sources.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  570. }
  571. echo "</li>";
  572. echo "<li>";
  573. if (file_exists('/srv/rutorrent/plugins/mediainfo/plugin.info')) {
  574. echo "<a href=\"?removeplugin-mediainfo=true\">mediainfo <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin is intended to display media file information.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  575. } else {
  576. echo "<a href=\"?installplugin-mediainfo=true\">mediainfo <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin is intended to display media file information.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  577. }
  578. echo "</li>";
  579. echo "<li>";
  580. if (file_exists('/srv/rutorrent/plugins/mobile/plugin.info')) {
  581. echo "<a href=\"?removeplugin-mobile=true\">mobile <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin provides a mobile version of ruTorrent. (Not compatible with the ipad plugin)\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  582. } else {
  583. echo "<a href=\"?installplugin-mobile=true\">mobile <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin provides a mobile version of ruTorrent. (Not compatible with the ipad plugin)\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  584. }
  585. echo "</li>";
  586. echo "<li>";
  587. if (file_exists('/srv/rutorrent/plugins/pausewebui/plugin.info')) {
  588. echo "<a href=\"?removeplugin-pausewebui=true\">pausewebui <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"Adds an button to pause the webui from updating.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  589. } else {
  590. echo "<a href=\"?installplugin-pausewebui=true\">pausewebui <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"Adds an button to pause the webui from updating.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  591. }
  592. echo "</li>";
  593. echo "<li>";
  594. if (file_exists('/srv/rutorrent/plugins/ratio/plugin.info')) {
  595. echo "<a href=\"?removeplugin-ratio=true\">ratio <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows to manage ratio limits for groups of torrents.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  596. } else {
  597. echo "<a href=\"?installplugin-ratio=true\">ratio <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"This plugin allows to manage ratio limits for groups of torrents.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-notinstalled.png\"></span></a>";
  598. }
  599. echo "</li>";
  600. echo "<li>";
  601. if (file_exists('/srv/rutorrent/plugins/ratiocolor/plugin.info')) {
  602. echo "<a href=\"?removeplugin-ratiocolor=true\">ratiocolor <span class=\"tooltips text-inverted fa fa-question-circle\" data-toggle=\"tooltip\" title=\"Change color of ratio column depending on ratio.\" data-placement=\"right\"></span> <span class=\"pull-right plgin-center-switch\"><img src=\"img/switch-installed.png\"></span></a>";
  603. } else {