The purpose of this application is to allow a chronological shuffling of tv shows. The selected TV Shows maybe shuffled however the episodes will be selected based on next unwatched.

Overview

TvShuffleForPlex

Description

The purpose of this application is to allow a chronological shuffling of tv shows. The selected TV Shows maybe shuffled however the episodes will be selected based on next unwatched.

NOTE: This is not a secure site, keep it within your local network. (no port forwarding)

How it works

  • You select a series of TV shows you want to see
  • You select the length of the queue you want generated. (default 20)
  • You select shuffle.
    • Inclusive shuffle will only pick episodes from the selected tv shows
    • Exclusive shuffle will only pick episodes from all shows NOT selected.
  • The app will randomly pick a show from your selected tv shows list, and find the next unwatched episode to put in the queue slot
    • It will move on to the next queue slot and pick a random show to do the same with.
    • If a show is selected for 2 or more slots and the next unwatched episode is already in the queue, the later slot will get the episode following the last episode in the list, keeping the order of episodes in the queue in order.
  • Once the queue is generate, you select which active client you want the queue sent to for viewing.

High level functionalities

  • Allow users to select the plex server from which to source tv shows.
  • Allow users to multi select tv shows from which shuffled (inclusive and exclusive) episodes will be selected.
  • Allow users to save the selected tv shows as lists, making it easier to come back to the same list of shows.
  • Allow users to set the max number of episodes that will be put in the plex queue.
  • Allow users to push the generated episodes plex queue to a given client.

Supported Systems

  • Ubuntu 20.x - Manjaro 20.x
  • Windows 10 (64bit)

Installation

LINUX

Auto Service Install

Does the same steps as the Manual Install

  1. Download the Git Repo
  2. Run the service_install.sh script This script required elevated privileges to run
    • Use sudo service_install.sh to prevent having to put your password multiple times, or erring out
    • Uninstall using service_uninstall.sh script This script required elevated privileges to run

Manual install

  1. Download the Git Repo
  2. Install the requirements pip3 install -r requirements.txt
  3. Make migrations
    python3 manage.py makemigrations
    python3 manage.py migrate
    
  4. Start the application python3 manage.py runserver {IP}:{PORT}
Optional
  • Create and Enable a service.
    • Create service file touch TvShuffleForPlex.service
    • Edit the file with the following (Make sure you update all {} with the correct info)
    [Install]
    WantedBy=multi-user.target
    
    [Unit]
    Description=TV Shuffle For Plex
    After=network.target
    StartLimitIntervalSec=0
    
    [Service]
    WorkingDirectory={INSTALL PATH}
    Type=simple
    Restart=always
    RestartSec=1
    ExecStart={FULL PATH TO PYTHON3} {INSTALL PATH}/TvShuffleForPlex/manage.py runserver {IP}:{PORT}
    
    • Link the to service controller systemctl link ./TvShuffleForPlex.service
    • Reload daemon systemctl daemon-reload
    • Enable the service systemctl enable TvShuffleForPlex.service
      • Will automatically start the service on boot.
    • Start the service systemctl start TvShuffleForPlex.service
      • Check to make sure the service started normally without errors systemctl status PlexTvStation.service
  • Starting and Stopping the service
    • Start service systemctl start TvShuffleForPlex.service
    • Stop service systemctl stop TvShuffleForPlex.service

Troubleshooting

  • Read the log files at {INSTALL PATH}/TvShuffleForPlex/_tvshuffleforplex/logs
  • Read console outputs journalctl -u TvShuffleForPlex.service
  • Google errors that might occur.

Windows

Thank you to NSSM - Non-sucking Service Manager for making Windows service creation simple

Auto Service Install

Does the same steps as the Manual Install

  1. Download the Git Repo
  2. Run the service_install.bat script This script required elevated privileges to run
    • Uninstall using service_uninstall.bat script This script required elevated privileges to run

Manual install

  1. Download the Git Repo
  2. Install the requirements pip3 install -r requirements.txt
  3. Make migrations
    python3 manage.py makemigrations
    python3 manage.py migrate
    
  4. Start the application python3 manage.py runserver {IP}:{PORT}
Optional
  • Create and Enable a service. Using NSSM - Non-sucking Service Manager located in {INSTALL PATH}\nssm-2.24\win64\nssm.exe

    (Make sure you update all {} with the correct info)

    • Create a service from an admin cmd nssm.exe install TvShuffleForPlex {FULL PATH TO PYTHON} {INSTALL PATH}/TvShuffleForPlex/manage.py runserver {IP}:{PORT}
    • Start the service nssm.exe start TvShuffleForPlex
    • Check the status of the service nssm.exe status TvShuffleForPlex

Usage

  • Login with your plex account

    http://{IP}:{PORT}/login
    

    Login

  • Select a plex server

    ServerSelect

  • Select TV Shows

    ShowSelect

  • Shuffle the Shows

    • Inclusive/Exclusive select
    • Max episodes in generate queue

    Shuffle

  • Shuffle the list

  • Select a client to push the queue to

    ClientPush

  • Save the selected list

    SaveList

  • Select saved List

    SelectList

Issues
  • Push to a disconnected client

    Push to a disconnected client

    Describe the bug Pushing to a client that was disconnected after the page loaded, results in the site crashing

    To Reproduce Steps to reproduce the behavior:

    1. Load a shuffled list
    2. Disconnect one of the clients (close the browser window, or phone app)
    3. Try to push the queue to the disconnected client

    Expected behavior Display an error

    Desktop (please complete the following information):

    • OS: NA
    • Browser All
    • Version v0.1
    • Version [e.g. 22]
    bug 
    opened by sharmaanupam106 1
  • App wont run on windows

    App wont run on windows

    Describe the bug Windows merges plextvstation and PlexTvStation directories in PlexTvStation/. The app folder name is lower case, and the project name is camel case. Windows does not like that.

    To Reproduce Steps to reproduce the behavior:

    1. Download the release
    2. Extract to folder

    Expected behavior All files and folders should be structured the same as shown in github,.

    Desktop (please complete the following information):

    • OS: Windows 10
    • Browser NA
    • Version v0.1
    bug 
    opened by sharmaanupam106 1
  • QoL update to HTML

    QoL update to HTML

    Describe the solution you'd like Make Quality of life updates to the HTML, CSS and JS.

    [] Async call for auto-list generation Show loading icon [] connecting to server [] selected list [] selected client [] saving list [] ajax update the server list [] ajax update the saved list [] drop down select on the row, and not just the link

    enhancement 
    opened by sharmaanupam106 0
  • Shuffle has no end

    Shuffle has no end

    Describe the bug Shuffle feature has no end if there arent enough episodes to fill all the queue slots

    To Reproduce Steps to reproduce the behavior:

    1. Select a tv show with less unwatched episodes, than queue slots
    2. shuffle

    Expected behavior All available episodes should be added to the queue, and once there are no more episodes available to add, the queue should be returned

    bug 
    opened by sharmaanupam106 0
Releases(v0.3)
Next major version of GmSSL!

GmSSL 3.0 Dev GmSSL的2.x版本的开发始于2016年,目前主分支在功能上实现了对主要国密算法、标准和协议的覆盖,并成功应用于多种互联网场景中。但是随着GmSSL在物联网、区块链等新场景中的应用,及在密码产品合规检测过程中的实践,我们发现应用对GmSSL提出了一些新的需求。由于很难在

Zhi Guan 100 Jun 8, 2022
LibVNCServer/LibVNCClient are cross-platform C libraries that allow you to easily implement VNC server or client functionality in your program.

LibVNCServer: A library for easy implementation of a VNC server. Copyright (C) 2001-2003 Johannes E. Schindelin If you already used LibVNCServer, you

null 839 Jun 27, 2022
Minimalistic server (written in C) and a python3 client to allow calling C function on a remote host

Minimalistic server (written in C) and a python3 client to allow calling C function on a remote host

null 8 Jun 1, 2022
traces tcp requests in kernel. allow to set up IPs to filter dynamically using bpf-map.

ttcp cilium/ebpf/examples/tcprtt에다가 BPF_MAP_TYPE_HASH를 추가해서 srcAddr을 필터링하도록 수정함. 어플리케이션에는 Http API를 추가해서 필터링할 IP를 추가, 삭제, 조회할 수 있도록 함. Getting Startd

null 8 May 20, 2022
The program shows how bluetooth devices are connected, without using socket programming

The program shows how bluetooth devices are connected, without using socket programming, it shows how files are shared using principles of OOP

SAKSHI JAIN 1 Jan 22, 2022
Drogon: A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows

English | 简体中文 | 繁體中文 Overview Drogon is a C++14/17-based HTTP application framework. Drogon can be used to easily build various types of web applicat

An Tao 7.5k Jun 29, 2022
Linux Application Level Firewall based on eBPF and NFQUEUE.

eBPFSnitch eBPFSnitch is a Linux Application Level Firewall based on eBPF and NFQUEUE. It is inspired by OpenSnitch, and Douane, but utilizing modern

Harpo Roeder 641 Jun 17, 2022
BingBing 53 Jun 10, 2022
Application for updating Pinecil soldering iron

Pinecil Firmware Updater Application for updating Pine64's Pinecil soldering iron. Supported platforms Windows 7 - 10 (64-bit) MacOS Linux Screenshots

Pine64 105 Jun 21, 2022
🌱Light and powerful C++ web framework for highly scalable and resource-efficient web application. It's zero-dependency and easy-portable.

Oat++ News Hey, meet the new oatpp version 1.2.5! See the changelog for details. Check out the new oatpp ORM - read more here. Oat++ is a modern Web F

Oat++ 5.5k Jun 27, 2022
OpenBoard is a cross-platform interactive whiteboard application intended for use in a classroom setting.

OpenBoard is an open source cross-platform interactive white board application designed primarily for use in schools. It was originally forked from Open-Sankoré, which was itself based on Uniboard.

OpenBoard 1.5k Jun 21, 2022
Application that sends custom requests to League of Legends LCU api

More screenshots For fun project made in the span of 2 nights back in February 2021, which I'm now updating Technologies used No external libraries, o

null 109 Jun 23, 2022
LAppS - Lua Application Server for micro-services with default communication over WebSockets. The fastest and most vertically scalable WebSockets server implementation ever. Low latency C++ <-> Lua stack roundtrip.

LAppS - Lua Application Server This is an attempt to provide very easy to use Lua Application Server working over WebSockets protocol (RFC 6455). LApp

null 47 Apr 25, 2022
Messaging Client - Server application

Message_Client-Server Messaging Client - Server application Message Socket Server (server.c) Uses TCP/IP (stream socket) Requieres: 1 command paramete

George 2 Oct 5, 2021
High performance server-side application framework

Seastar Introduction SeaStar is an event-driven framework allowing you to write non-blocking, asynchronous code in a relatively straightforward manner

ScyllaDB 6.7k Jun 27, 2022
Built a client-server application using TCP and UDP sockets, in which the clients can subscribe/unsubscribe to various topics.

Built a client-server application using TCP and UDP sockets, in which the clients can subscribe/unsubscribe to various topics.

null 1 Jun 22, 2022
Unofficial Linux client for the Adobe Connect meeting application

Unofficial Adobe Connect Client for Linux Description: Adobe Connect does not have a linux version officially, however, since it's written in flash, i

Mahan Lamee 13 Jun 3, 2022
Creating a server-client application with C sockets.

C-ServerClient Creating a server-client application with C socket. How to use? Clone the project and cd in to the main directory. Open a terminal and

AmirH.Najafizadeh 7 Nov 15, 2021
The project consists in a client/server architecture voice over IP application, similar to Skype or TeamSpeak.

Babel The project consists in a client/server architecture voice over IP application, similar to Skype or TeamSpeak. Build and Run the Project First y

Benjamin Reigner 1 Jan 17, 2022