diff --git a/imports/ui/App.jsx b/imports/ui/App.jsx
index 4797a52d..b5fe5930 100644
--- a/imports/ui/App.jsx
+++ b/imports/ui/App.jsx
@@ -22,7 +22,6 @@ import TabPlugins from './plugins/tab_Plugins.jsx';
import TabSearch from './tab_Search.jsx';
import TabTranscoding from './transcoding/tab_Transcoding.jsx';
import TabBackups from './tab_Backups.jsx';
-import TabHire from './tab_Hire.jsx';
const tabs = [
{path: '/tdarr/', text: 'Tdarr', component: TabTranscoding},
@@ -34,7 +33,6 @@ const tabs = [
{path: '/logs/', text: 'Logs', component: TabLog},
{path: '/help/', text: 'Help', component: TabHelp},
{path: '/backups/', text: 'Backups', component: TabBackups},
- {path: '/hire/', text: 'Hire', component: TabHire},
{path: '/', text: 'Dev', component: TabDev},
];
@@ -47,7 +45,7 @@ export default AppRouter = () => {
const [currentVersion, setVersion] = React.useState('');
- const [newVersion, setNewVersion] = React.useState(1.107);
+ const [newVersion, setNewVersion] = React.useState(1.108);
diff --git a/imports/ui/libraries/tab_Libraries.jsx b/imports/ui/libraries/tab_Libraries.jsx
index 90a2e910..57f3a8d3 100644
--- a/imports/ui/libraries/tab_Libraries.jsx
+++ b/imports/ui/libraries/tab_Libraries.jsx
@@ -86,12 +86,28 @@ class App extends Component {
expanded:true,
navItemSelected:"navSourceFolder",
pluginID:'',
- pluginIDs:[{
+ pluginIDs:[
+ {
_id:"Tdarr_Plugin_lmg1_Reorder_Streams",
checked:true,
source:"Community",
priority:0,
- }],
+ },
+ {
+ _id:"Tdarr_Plugin_MC93_Migz1FFMPEG_CPU",
+ checked:true,
+ source:"Community",
+ priority:1,
+ },
+ {
+ _id:"Tdarr_Plugin_MC93_Migz1FFMPEG",
+ checked:false,
+ source:"Community",
+ priority:2,
+ },
+
+
+ ],
pluginValid:false,
pluginCommunity:true,
handbrake:true,
diff --git a/imports/ui/styles/main.scss b/imports/ui/styles/main.scss
index 65b0ae2f..b61ad7b2 100644
--- a/imports/ui/styles/main.scss
+++ b/imports/ui/styles/main.scss
@@ -440,42 +440,63 @@ input[type="text"]
justify-content: center;
}
+
+.workerContainer{
+ display: 'inline-block';
+ border-radius: 5px;
+ width:400px;
+ margin:1em;
+}
+
+
+.workerContainerItems{
+ padding:1em 2em;
+
+}
+
.workerItemsGrid{
display: grid;
grid-template-columns: repeat(4, 1fr);
- margin:1em;
+ text-align: left;
+
}
-.workerContainer{
- display: 'inline-block';
+.workerDetailsGrid{
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ text-align: left;
- border-radius: 5px;
- width:400px;
}
+.workerGrid-item {
+
+ margin: 0 1em;
+ padding: 0 0 0 0;
+}
+
+table.workerDetailTable td {
+ color: black;
+}
+
+.workerBreakLine{
+ word-break: break-all;
+}
+
+
.borderStyleGeneral{
border: 2px solid black;
border-radius: 5px;
background-color:#373737;
- margin:1em;
- padding:1em;
-
}
.borderStyleTranscode{
border: 2px solid #66ccff;
border-radius: 5px;
background-color:#373737;
- margin:1em;
- padding:1em;
-
}
.borderStyleHealthCheck{
border: 2px solid #4CAF50;
border-radius: 5px;
- background-color:#373737;
- margin:1em;
- padding:1em;
-
+ background-color:#373737;
}
@@ -1304,14 +1325,7 @@ table.scheduleTable tr:hover {
}
}
-table.workerDetailTable td {
-
- color: black;
- vertical-align: text-top;
-
-
-}
.introText{
diff --git a/imports/ui/tab_Dev.jsx b/imports/ui/tab_Dev.jsx
index f70cac1c..3294e6eb 100644
--- a/imports/ui/tab_Dev.jsx
+++ b/imports/ui/tab_Dev.jsx
@@ -123,6 +123,26 @@ export default class App extends Component {
Beta v1.107 release [4th April 2020]:
+
+
Changes:
+
+
-[New] tdarr_aio ffmpeg updated to 4.2.2 with libaom enabled
+
-[New] Small UI changes and help info updates
+
-[New] Folder watch: Option to use file system events (FSE) instead of polling (try if polling causes high CPU/disk IO). FSE may not work with all drives/shares.
+
-[New] HandBrake and FFmpeg binary paths passed to plugins
+
-[Improvement] Error shown if problem with reading plugin
+
-[Improvement] New files appended with '.partial' while copying to source to prevent app/services scanning temp file
+
-[Improvement] Logs saved to txt file (inside Tdarr/Logs) instead of DB
+
-[Fix] Detect if files are replaced with file of same file name+extension
+
-[Fix] Limit transcode error logs to 200 lines (Sometimes 70,000+ lines which causes DB issues)
+
-[Fix] Info log added for post-processing plugins
+
-[Fix] Prevent corrupt item causing whole backup restore process to stop
+
+
+
+
Beta v1.106 release [20th March 2020]:
Changes:
diff --git a/imports/ui/tab_Dev_latest.jsx b/imports/ui/tab_Dev_latest.jsx
index 24f63544..1b24c266 100644
--- a/imports/ui/tab_Dev_latest.jsx
+++ b/imports/ui/tab_Dev_latest.jsx
@@ -29,21 +29,15 @@ export default class App extends Component {
Beta v1.107 release [4th April 2020]: +
Beta v1.108 release [18th April 2020]:
Changes:
-
-[New] tdarr_aio ffmpeg updated to 4.2.2 with libaom enabled
-
-[New] Small UI changes and help info updates
-
-[New] Folder watch: Option to use file system events (FSE) instead of polling (try if polling causes high CPU/disk IO). FSE may not work with all drives/shares.
-
-[New] HandBrake and FFmpeg binary paths passed to plugins
-
-[Improvement] Error shown if problem with reading plugin
-
-[Improvement] New files appended with '.partial' while copying to source to prevent app/services scanning temp file
-
-[Improvement] Logs saved to txt file (inside Tdarr/Logs) instead of DB
-
-[Fix] Detect if files are replaced with file of same file name+extension
-
-[Fix] Limit transcode error logs to 200 lines (Sometimes 70,000+ lines which causes DB issues)
-
-[Fix] Info log added for post-processing plugins
-
-[Fix] Prevent corrupt item causing whole backup restore process to stop
+
-[New] Add default plugins to new libraries
+
-[Improvement] Check other properties to calculate bitrate
+
-[Improvement] Reduce worker spawn rate
+
-[Improvement] Change process priority from "Below normal" to "Low" when switch enabled (Win)
+
-[Fix] Prevent folder watcher re-adding already scanned files
diff --git a/imports/ui/tab_Hire.jsx b/imports/ui/tab_Hire.jsx
deleted file mode 100644
index 0134feb7..00000000
--- a/imports/ui/tab_Hire.jsx
+++ /dev/null
@@ -1,92 +0,0 @@
-import React, { Component } from 'react';
-import { Meteor } from 'meteor/meteor';
-import { Button } from 'react-bootstrap';
-
-
-
-
-
-
-export default class App extends Component {
-
- constructor(props) {
- super(props);
-
- }
-
- componentDidMount() {
-
- }
-
-
- render() {
-
-
-
- return (
-
-
-
-
I'm looking to do some freelance work with regards to the following:
-Custom versions, special/urgent requests or 1-to-1 help for my apps (below)
-Small/medium sized cross platform desktop applications
-Small/medium sized websites/web apps
-Tools, utilities or scripts
-Transcode related projects
-Remote junior/graduate role (or on-site in UK)
-Learning to code
- - -$20/hr through Paypal. If you have any questions or know anyone looking for the above then please don't hesitate to contact me!
-Contact: roystubbs.dev@gmail.com
-Website: roystubbs.dev
- - -Thanks, Roy
- -My Apps:
-A free GUI application for HandBrake and FFmpeg/FFprobe on Windows, macOS and Linux (+ Linux Docker image) with - an emphasis on multi HandBrake/FFmpeg instance batch conversion (including recursive folder scans and folder watching). - The destination folder structure is kept the same as the source folder structure. Media in subfolders is also converted. - Multiple folders can be monitored and different conversion presets can be specified for each folder.
- -Tdarr is a self hosted web-app for automating media library transcode/remux management and making sure your files - are exactly how you need them to be in terms of codecs/streams/containers etc. Designed to work alongside Sonarr/Radarr - and built with the aim of modularisation, parallelisation and scalability, each library you add has its own transcode - settings, filters and schedule. Workers can be fired up and closed down as necessary, and are split into 3 types - 'general', - 'transcode' and 'health check'. Worker limits can be managed by the scheduler as well as manually.
- -{this.props.worker.mode == 'transcode' ? "Transcode" : this.props.worker.mode == 'healthcheck' ? "Heath check" : "General(" + workerModes[this.props.worker.modeType] + ")"}
@@ -126,16 +127,16 @@ export default class Worker extends Component {ETA{'\u00A0'}{'\u00A0'}{ this.props.worker.modeType == 'healthcheck' && this.props.worker.CLIType == "FFmpeg" ? "None" :this.props.worker.percentage <= 100 ? this.props.worker.ETA : ''}
+ETA{'\u00A0'}{'\u00A0'}{this.props.worker.modeType == 'healthcheck' && this.props.worker.CLIType == "FFmpeg" ? "None" : this.props.worker.percentage <= 100 ? this.props.worker.ETA : ''}
{this.props.worker.lastPluginDetails.number ? this.props.worker.lastPluginDetails.number : ''}
+{this.props.worker.lastPluginDetails.number ? this.props.worker.lastPluginDetails.number : ''}
Frame: {this.props.worker.percentage / 100}
+Frame: {this.props.worker.percentage / 100}
Path: | {this.props.worker.file} |
CLI: | {this.props.worker.CLIType} |
Preset: | {this.props.worker.preset} |
Path: | {this.props.worker.file} |
CLI: | {this.props.worker.CLIType} |
Preset: | {this.props.worker.preset} |
Process reasons: | {this.transcodeReason(this.props.worker.cliLogAdd)} |
Start time: | {this.toTime(this.props.worker.startTime)} |
Process reasons: | {this.transcodeReason(this.props.worker.cliLogAdd)} |
Duration: | {this.duration(this.props.worker.startTime)} |
Original size
{this.props.worker.sourcefileSizeInGbytes == undefined ? 0 : (this.props.worker.sourcefileSizeInGbytes < 1 ? parseFloat((this.props.worker.sourcefileSizeInGbytes * 1000).toPrecision(4)) +" MB" : parseFloat((this.props.worker.sourcefileSizeInGbytes).toPrecision(4)) + " GB")}
Output file size
{this.props.worker.outputFileSizeInGbytes == undefined ? 0 : (this.props.worker.outputFileSizeInGbytes < 1 ? parseFloat((this.props.worker.outputFileSizeInGbytes * 1000).toPrecision(4)) +" MB" : parseFloat((this.props.worker.outputFileSizeInGbytes).toPrecision(4)) + " GB")}
Estimated size
{this.props.worker.estSize == undefined ? 0 : (this.props.worker.estSize < 1 ? parseFloat((this.props.worker.estSize * 1000).toPrecision(4)) +" MB" : parseFloat((this.props.worker.estSize).toPrecision(4)) + " GB")}
Output file size:
{this.props.worker.outputFileSizeInGbytes == undefined ? 0 : (this.props.worker.outputFileSizeInGbytes < 1 ? parseFloat((this.props.worker.outputFileSizeInGbytes * 1000).toPrecision(4)) + " MB" : parseFloat((this.props.worker.outputFileSizeInGbytes).toPrecision(4)) + " GB")}