Skip to content
This repository was archived by the owner on Jun 2, 2024. It is now read-only.

Commit ff7fd08

Browse files
author
Robert Thomas
committed
Plexus v0.6 + Website
Better function handling, some text has also been minified. Root flags are now supported. The list and encode functions are now fully operational, however, they're lacking sufficient error handling and could both benefit from further codec support.
1 parent 44ad193 commit ff7fd08

File tree

14 files changed

+1463
-16
lines changed

14 files changed

+1463
-16
lines changed

README.md

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,41 @@
1-
# Plex Encode
2-
This script will create a list of media from your Plex server that needs to be re-encoded.
1+
# Plexus
2+
A suite of tools to help manage the media behind a Plex server.
33

44
## Install
55

6-
First, install required dependencies:
6+
### Automatic
7+
You can automatically install Plexus by running the following line via a supported command line interface:
78
``` bash
8-
sudo apt-get install ffmpeg mediainfo -y
9+
curl https://plexus.robt.me/install.sh | sudo bash
910
```
10-
Then, create the required directories:
11+
12+
### Manual
13+
Alternatively, you can manually install Plexus to a custom location on your device.
14+
Install any missing dependencies and create all of the temporary folders required:
15+
``` bash
16+
sudo apt-get install curl ffmpeg unzip -y mkdir -p /mnt/plexus /tmp/plexus /tmp/plexus/encode /tmp/plexus/encode/convert /tmp/plexus/encode/converted /tmp/plexus/rclone
17+
```
18+
19+
Next, download the executable itself:
20+
``` bash
21+
curl -O https://plexus.robt.me/versions/releases/latest/plexus
22+
```
23+
24+
Finally, correct the file permissions and move it into your respective operating system's application directory. The following example is for Linux:
25+
``` bash
26+
chmod u+x plexus && chmod 755 plexus
27+
sudo chown root:root plexus
28+
sudo mv plexus /usr/bin/plexus
29+
```
30+
31+
#### That's it!
32+
33+
The automated script checks for an RClone installation too as Plexus natively supports it. To install RClone:
1134
``` bash
12-
sudo mkdir /root/plex-encode /tmp/plex-encode /tmp/plex-encode/convert /tmp/plex-encode/converted
35+
curl https://rclone.org/install.sh | sudo bash
1336
```
14-
Next, run the build-list.sh script
37+
38+
## Credits
39+
- Creator: Robert Thomas ([Wolveix](https://github.com/Wolveix))
40+
- Original Scripts: Mason Rowe ([MasonR](https://github.com/MasonR))
41+
- License: [GNU General Public License v3.0](https://github.com/Wolveix/Plexus/blob/master/LICENSE)

docs/CNAME

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
plexus.robt.me

docs/assets/css/styles.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/assets/js/main.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/favicon.ico

1.12 KB
Binary file not shown.

docs/help/index.html

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<title>Plexus Suite | FAQ</title>
5+
<meta charset="utf-8">
6+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
7+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
8+
<meta name="description" content="">
9+
<meta name="author" content="">
10+
<link rel="shortcut icon" href="favicon.ico">
11+
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
12+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css">
13+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
14+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.15.0/themes/prism-okaidia.min.css">
15+
<link id="theme-style" rel="stylesheet" href="/assets/css/styles.css">
16+
<!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]-->
17+
</head>
18+
<body class="body-red">
19+
<div class="page-wrapper">
20+
<header id="header" class="header">
21+
<div class="container">
22+
<div class="branding">
23+
<h1 class="logo"> <a href="/"> <span aria-hidden="true" class="icon_documents_alt icon"></span> <span class="text-highlight">Plexus</span><span class="text-bold">Suite</span> </a> </h1>
24+
</div>
25+
<ol class="breadcrumb">
26+
<li><a href="/">Home</a></li>
27+
<li class="active"><a href="/help">Help</a></li>
28+
<li><a href="/versions">Versions</a></li>
29+
</ol>
30+
</div>
31+
</header>
32+
<div class="doc-wrapper">
33+
<div class="container">
34+
<div id="doc-header" class="doc-header text-center">
35+
<h1 class="doc-title"><span aria-hidden="true" class="fa fa-question-circle"></span> Help</h1>
36+
<div class="meta"><i class="fa fa-clock-o"></i> Last updated: June 25th, 2018</div>
37+
</div>
38+
<div class="doc-body">
39+
<div class="doc-content">
40+
<div class="content-inner">
41+
<section id="general" class="doc-section">
42+
<h2 class="section-title">General</h2>
43+
<div class="section-block">
44+
<h3 class="question"><i class="fa fa-question-circle"></i> What if the install fails?</h3>
45+
<div class="answer">The app is currently unstable and in active development. Please wait for a stable release.</div>
46+
</div>
47+
</section>
48+
</div>
49+
</div>
50+
<div class="doc-sidebar">
51+
<nav id="doc-nav">
52+
<ul id="doc-menu" class="nav doc-menu hidden-xs" data-spy="affix">
53+
<li><a class="scrollto" href="#general">General</a></li>
54+
</ul>
55+
</nav>
56+
</div>
57+
</div>
58+
</div>
59+
</div>
60+
</div>
61+
<footer id="footer" class="footer text-center">
62+
<div class="container"> <small class="copyright">App developed by <a href="https://github.com/Wolveix" target="_blank">Robert Thomas</a> | Site template designed by <a href="http://themes.3rdwavemedia.com/" targe="_blank">Xiaoying Riley</a></small> </div>
63+
</footer>
64+
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.15.0/prism.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery.scrollto@2.1.2/jquery.scrollTo.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/ekko-lightbox/3.3.0/ekko-lightbox.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery.matchHeight/0.7.2/jquery.matchHeight-min.js"></script> <script type="text/javascript" src="/assets/js/main.js"></script>
65+
</body>
66+
</html>

docs/index.html

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<title>Plexus Suite | Documentation</title>
5+
<meta charset="utf-8">
6+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
7+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
8+
<meta name="description" content="">
9+
<meta name="author" content="">
10+
<link rel="shortcut icon" href="favicon.ico">
11+
<link href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
12+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css">
13+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
14+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.15.0/themes/prism-okaidia.min.css">
15+
<link id="theme-style" rel="stylesheet" href="/assets/css/styles.css">
16+
<!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script><![endif]-->
17+
</head>
18+
<body class="body-orange">
19+
<div class="page-wrapper">
20+
<header id="header" class="header">
21+
<div class="container">
22+
<div class="branding">
23+
<h1 class="logo"> <a href="/"> <span aria-hidden="true" class="icon_documents_alt icon"></span> <span class="text-highlight">Plexus</span><span class="text-bold">Suite</span> </a> </h1>
24+
</div>
25+
<ol class="breadcrumb">
26+
<li class="active"><a href="/">Home</a></li>
27+
<li><a href="/help">Help</a></li>
28+
<li><a href="/versions">Versions</a></li>
29+
</ol>
30+
</div>
31+
</header>
32+
<div class="doc-wrapper">
33+
<div class="container">
34+
<div id="doc-header" class="doc-header text-center">
35+
<h1 class="doc-title"><i class="icon fa fa-share"></i> Plexus Suite v0.6</h1>
36+
<div class="meta"><i class="fa fa-clock-o"></i> Last updated: June 25th, 2018</div>
37+
</div>
38+
<div class="doc-body">
39+
<div class="doc-content">
40+
<div class="content-inner">
41+
<section id="about-section" class="doc-section">
42+
<h2 class="section-title">About</h2>
43+
<div class="section-block">
44+
<p>Plexus is a suite of easy-to-use tools to help manage your media collection. You can build a list of media within your collection which is incorrectly encoded, and then re-encode all of that media automatically. Plexus also integrates smoothly with RClone.</p><br><p>I created this suite because I knew that I would need a simple CLI solution to re-encoding all of my media at some point in the future, and no other solution met my requirements.</p><br><p>Thank you to <a href="https://github.com/masonr" target="_blank">Mason Rowe</a> for the advice and starting scripts.</p><br><p><strong><a href="https://github.com/Wolveix" target="_blank">Robert Thomas</a> - <a href="https://robt.me" target="_blank">Managing Director & Lead Software Developer</a> at <a href="https://arcruy.com" target="_blank">Arcruy</a></strong></p>
45+
</div>
46+
</section>
47+
<section id="installation-section" class="doc-section">
48+
<h2 class="section-title">Installation</h2>
49+
<div id="installation-automatic" class="section-block">
50+
<h3 class="block-title">Automatic</h3>
51+
<p>You can automatically install Plexus by running the following line via a supported command line interface: </p>
52+
<p><code>curl https://plexus.robt.me/install.sh | sudo bash</code></p>
53+
</div>
54+
<div id="installation-manual" class="section-block">
55+
<h3 class="block-title">Manual</h3>
56+
<p>Alternatively, you can manually install Plexus to a custom location on your device.</p>
57+
<br>
58+
<p>Install any missing dependencies and create all of the temporary folders required:</p>
59+
<p><code>sudo apt-get install curl ffmpeg unzip -y</code></p>
60+
<p><code>mkdir -p /mnt/plexus /tmp/plexus /tmp/plexus/encode /tmp/plexus/encode/convert /tmp/plexus/encode/converted /tmp/plexus/rclone</code></p>
61+
<br>
62+
<p>Next, download the executable itself:</p>
63+
<p><code>curl -O https://plexus.robt.me/versions/releases/latest/plexus</code></p>
64+
<br>
65+
<p>Finally, correct the file permissions and move it into your respective operating system's application directory. The following example is for Linux:</p>
66+
<p><code>chmod u+x plexus && chmod 755 plexus</code></p>
67+
<p><code>sudo chown root:root plexus</code></p>
68+
<p><code>sudo mv plexus /usr/bin/plexus</code></p>
69+
<br>
70+
<h3>That's it!</h3>
71+
<p>The automated script checks for an RClone installation too as Plexus natively supports it. To install RClone:</p>
72+
<p><code>curl https://rclone.org/install.sh | sudo bash</code></p>
73+
</div>
74+
</section>
75+
</div>
76+
</div>
77+
<div class="doc-sidebar hidden-xs">
78+
<nav id="doc-nav">
79+
<ul id="doc-menu" class="nav doc-menu" data-spy="affix">
80+
<li><a class="scrollto" href="#about-section">About</a></li>
81+
<li>
82+
<a class="scrollto" href="#installation-section">Installation</a>
83+
<ul class="nav doc-sub-menu">
84+
<li><a class="scrollto" href="#installation-automatic">Automatic</a></li>
85+
<li><a class="scrollto" href="#installation-manual">Manual</a></li>
86+
</ul>
87+
</li>
88+
</ul>
89+
</nav>
90+
</div>
91+
</div>
92+
</div>
93+
</div>
94+
</div>
95+
<footer id="footer" class="footer text-center">
96+
<div class="container"> <small class="copyright">App developed by <a href="https://github.com/Wolveix" target="_blank">Robert Thomas</a> | Site template designed by <a href="http://themes.3rdwavemedia.com/" targe="_blank">Xiaoying Riley</a></small> </div>
97+
</footer>
98+
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.15.0/prism.min.js"></script> <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery.scrollto@2.1.2/jquery.scrollTo.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery.matchHeight/0.7.2/jquery.matchHeight-min.js"></script> <script type="text/javascript" src="/assets/js/main.js"></script>
99+
</body>
100+
</html>

docs/install.sh

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/usr/bin/env bash
2+
printf "\\n\\e[93m=== Plexus v0.6 - Developed by Robert Thomas ==="
3+
printf "\\n=== https://github.com/Wolveix/plexus ==="
4+
printf "\\n\\e[32mInstalling missing dependencies.\\n\\n\\e[94m"
5+
apt-get install curl ffmpeg unzip -y
6+
printf "\\n\\e[32mCreating directories if they don't already exist.\\n\\e[94m"
7+
mkdir -p /mnt/plexus /tmp/plexus /tmp/plexus/encode /tmp/plexus/encode/convert /tmp/plexus/encode/converted /tmp/plexus/rclone
8+
rclone_version=$(rclone -V)
9+
if [[ "$rclone_version" != *"os/arch: "* ]]; then printf "\\n\\e[32mInstalling RClone.\\n\\n\\e[94m"; curl https://rclone.org/install.sh | sudo bash; printf "\\e[32mRClone installed.\\n"; fi
10+
rclone_remotes=$(rclone listremotes)
11+
if [ -z "$rclone_remotes" ]; then printf "\\n\\e[32mYou don't have any RClone remotes setup. Set one up by running 'rclone config'\\n\\n\\e[94m"; fi
12+
cd /tmp/plexus || exit
13+
curl -O https://plexus.robt.me/versions/releases/latest/plexus
14+
chmod u+x plexus
15+
16+
OS="$(uname)"
17+
case ${OS,,} in
18+
'linux')
19+
chmod 755 plexus
20+
chown root:root plexus
21+
mv plexus /usr/bin/plexus
22+
;;
23+
'freebsd' | 'openbsd' | 'netbsd')
24+
chown root:wheel plexus
25+
mv plexus /usr/bin/plexus
26+
;;
27+
'darwin' | 'osx')
28+
mkdir -p /usr/local/bin
29+
mv plexus /usr/local/bin/plexus
30+
;;
31+
*)
32+
mv plexus /usr/local/bin/plexus
33+
;;
34+
esac
35+
36+
printf "\\n\\e[32mInstall completed!\\n"
37+
printf "\\nPlease run 'plexus help' to see a list of available commands.\\n"

0 commit comments

Comments
 (0)