port config and default subtitles added

port config and default subtitles added
This commit is contained in:
hama3254 2021-02-20 18:25:49 +01:00
parent 44ffb1a99b
commit 9f6cdbb705
32 changed files with 733 additions and 730 deletions

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 793 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

View File

@ -1,34 +0,0 @@
var episodeCount = document.getElementsByClassName("episode").length;
var i;
for (i = 0; i < episodeCount; i++) {
document.getElementsByClassName("episode")[i].setAttribute('href', "javascript:" + document.getElementsByClassName("episode")[i].href);
document.getElementsByClassName("episode")[i].setAttribute('onclick', 'deselect(this.id)')
//document.getElementsByClassName("episode")[i].style.background = "#f78c25";
document.getElementsByClassName("episode")[i].setAttribute('id', makeid(8))
//document.getElementsByClassName("episode")[i].classList.add('CRD-Selected')
}
function deselect(clicked_id) {
var seleceted = document.getElementById(clicked_id).classList.contains('CRD-Selected')
if (seleceted == true) {
document.getElementById(clicked_id).classList.remove('CRD-Selected')
document.getElementById(clicked_id).style.background = "#ffffff";
} else {
document.getElementById(clicked_id).classList.add('CRD-Selected')
document.getElementById(clicked_id).style.background = "#f78c25";
}
}
function makeid(length) {
var result = '';
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var charactersLength = characters.length;
for (var i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}

View File

@ -1,34 +0,0 @@
var episodeCount = document.getElementsByClassName("episode").length;
var i;
for (i = 0; i < episodeCount; i++) {
document.getElementsByClassName("episode")[i].setAttribute('href', "javascript:" + document.getElementsByClassName("episode")[i].href);
document.getElementsByClassName("episode")[i].setAttribute('onclick', 'deselect(this.id)')
//document.getElementsByClassName("episode")[i].style.background = "#f78c25";
document.getElementsByClassName("episode")[i].setAttribute('id', makeid(8))
//document.getElementsByClassName("episode")[i].classList.add('CRD-Selected')
}
function deselect(clicked_id) {
var seleceted = document.getElementById(clicked_id).classList.contains('CRD-Selected')
if (seleceted == true) {
document.getElementById(clicked_id).classList.remove('CRD-Selected')
document.getElementById(clicked_id).style.background = "#ffffff";
} else {
document.getElementById(clicked_id).classList.add('CRD-Selected')
document.getElementById(clicked_id).style.background = "#f78c25";
}
}
function makeid(length) {
var result = '';
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var charactersLength = characters.length;
for (var i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}

View File

@ -1,26 +0,0 @@
{
"manifest_version": 2,
"name": "Crunchyroll Downloader Addon",
"version": "0.2.0",
"description": "A Chrome Addon for my Crunchyroll Downloader",
"icons": {
"48": "icons/icon-48.png"
},
"permissions": [
"activeTab",
"tabs"
],
"browser_action": {
"default_icon": {
"128": "icons/icon-128.png",
"48": "icons/icon-48.png",
"20": "icons/icon-20.png"
},
"default_title": "CR-Downloader",
"default_popup": "popup.html"
}
}

View File

@ -1,15 +0,0 @@
.btn_class {
background-color: #ff8000;
border: none;
color: white;
padding: 10px;
text-align: center;
text-decoration: none;
font-size: 16px;
margin-left:12px;
margin-right:12px;
margin-Top:12px;
margin-Bottom:12px;
border-radius: 12px;
cursor:pointer;
}

View File

@ -1,34 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="popup.css" />
<meta charset="utf-8" />
<title>CR Unblocker plugin popup</title>
<style>
.body{background-color: #f2f2f2;}
.main-bg {background-color:#757575;}
.frame{height: 70px; width: 770px}
</style>
</head>
<body>
<center>
<div id="frame2" class="frame" >
<button type="button" class='btn_class' id='btn_enable_funimation_select'>Select Episodes</button>
<button type="button" class='btn_class' id='btn_add_funimation'>Add this Funimation Episode</button>
<button type="button" class='btn_class' id='btn_add'>Add this Crunchyroll Episode</button>
<button type="button" class='btn_class' id='btn_add_mass'>Add selected Episodes</button>
<button type="button" class='btn_class' id='btn_enable_select'>Select Episodes</button>
<button type="button" class='btn_class' id='btn_select_all'>Select All</button>
<button type="button" class='btn_class' id='btn_select_none'>Deselect All</button>
</div>
<iframe src="http://127.0.0.1" id="CRD-Webserver" width="760px" height="320px" frameborder="0"></iframe>
</center>
<script type="text/javascript" src="popup.js"></script>
</body>
</html>

View File

@ -1,352 +0,0 @@
chrome.tabs.query({
active: true,
currentWindow: true
},
function (tabs) {
console.log(tabs.length);
let tab = tabs[0]; // Safe to assume there will only be one resultconsole.log(tab.url);
console.log(tab.url);
if (tab.url.includes('crunchyroll.com')) {
//var crunchyroll = chrome.tabs.executeScript({
// code: 'document.getElementsByClassName("episode")[0].href;'
//});
//crunchyroll.then(onExecuted, onError);
chrome.tabs.executeScript(null, {
//code: 'document.getElementsByClassName("episode")[0].href;'
code: 'document.getElementsByClassName("episode").length;'
},
function (results) {
if (results > 0) {
onExecuted(results);
} else {
onError("error")
}
});
} else if (tab.url.includes('funimation.com')) {
chrome.tabs.executeScript(null, {
//code: 'document.getElementsByClassName("trackVideo")[0].href'
code: 'document.getElementsByClassName("trackVideo").length;'
},
function (results) {
if (results > 0) {
FunimationSuccess(results);
} else {
FunimationError(results);
}
});
} else {
document.getElementById("btn_add").hidden = true;
document.getElementById("btn_enable_select").hidden = true;
document.getElementById("btn_add_mass").hidden = true;
document.getElementById("btn_select_all").hidden = true;
document.getElementById("btn_select_none").hidden = true;
document.getElementById("btn_enable_funimation_select").hidden = true;
document.getElementById("btn_add_funimation").hidden = true;
}
});
document.getElementById('btn_enable_select').addEventListener('click', () => {
chrome.tabs.executeScript(null, {
code: 'var script=document.createElement("script");script.type="text/javascript",script.src="http://127.0.0.1/inject.js",document.head.appendChild(script);'
});
//browser.tabs.executeScript({
// code: 'var script=document.createElement("script");script.type="text/javascript",script.src="http://127.0.0.1/inject.js",document.head.appendChild(script);'
//}); //load script from local CRD Server included in https://github.com/hama3254/Crunchyroll-Downloader-v3.0
document.getElementById("btn_add_mass").hidden = false;
document.getElementById("btn_select_all").hidden = false;
document.getElementById("btn_select_none").hidden = false;
document.getElementById("btn_enable_select").hidden = true;
document.getElementById("btn_add").hidden = true;
document.getElementById("btn_enable_funimation_select").hidden = true;
document.getElementById("btn_add_funimation").hidden = true;
});
document.getElementById('btn_select_all').addEventListener('click', () => {
chrome.tabs.query({
active: true,
currentWindow: true
},
function (tabs) {
console.log(tabs.length);
let tab = tabs[0]; // Safe to assume there will only be one resultconsole.log(tab.url);
console.log(tab.url);
if (tab.url.includes('crunchyroll.com')) {
chrome.tabs.executeScript(null, {
code: 'var i,episodeCount=document.getElementsByClassName("episode").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("episode")[i].style.background="#f78c25",document.getElementsByClassName("episode")[i].classList.add("CRD-Selected");'
});
} else if (tab.url.includes('funimation.com')) {
chrome.tabs.executeScript(null, {
code: 'var i,episodeCount=document.getElementsByClassName("fullEpisodeThumbs").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("fullEpisodeThumbs")[i].style.background="#f78c25",document.getElementsByClassName("fullEpisodeThumbs")[i].classList.add("CRD-Selected");'
});
} else {}
});
});
document.getElementById('btn_select_none').addEventListener('click', () => {
chrome.tabs.query({
active: true,
currentWindow: true
},
function (tabs) {
console.log(tabs.length);
let tab = tabs[0]; // Safe to assume there will only be one resultconsole.log(tab.url);
console.log(tab.url);
if (tab.url.includes('crunchyroll.com')) {
chrome.tabs.executeScript(null, {
code: 'var i,episodeCount=document.getElementsByClassName("episode").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("episode")[i].style.background="#ffffff",document.getElementsByClassName("episode")[i].classList.remove("CRD-Selected");'
});
} else if (tab.url.includes('funimation.com')) {
chrome.tabs.executeScript(null, {
code: 'var i,episodeCount=document.getElementsByClassName("fullEpisodeThumbs").length;for(i=0;i<episodeCount;i++)document.getElementsByClassName("fullEpisodeThumbs")[i].style.background="#ffffff",document.getElementsByClassName("fullEpisodeThumbs")[i].classList.remove("CRD-Selected");'
});
} else {}
});
});
document.getElementById('btn_add').addEventListener('click', () => {
chrome.tabs.executeScript(null, {
code: "document.getElementsByClassName('no-js')[0].innerHTML;"
},
function (results) {
if (results !== null) {
document.getElementById("btn_add").disabled = true;
document.getElementById("btn_add").style.background = "#c9c9c9"
const form = document.createElement('form');
form.method = 'post';
form.action = "http://127.0.0.1/post";
const hiddenField = document.createElement('input');
hiddenField.type = 'hidden';
hiddenField.name = "HTMLSingle";
hiddenField.value = results;
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
setTimeout(function () {
document.getElementById("btn_add").style.background = "#ff8000"
}, 10000);
setTimeout(function () {
document.getElementById("btn_add").disabled = false;
}, 10000);
} else {
add_one_error(results);
}
});
});
document.getElementById('btn_add_funimation').addEventListener('click', () => {
chrome.tabs.query({
active: true,
currentWindow: true
},
function (tabs) {
document.getElementById("btn_add_funimation").disabled = true;
document.getElementById("btn_add_funimation").style.background = "#c9c9c9"
console.log(tabs.length);
let tab = tabs[0]; // Safe to assume there will only be one resultconsole.log(tab.url);
console.log(tab.url);
const form = document.createElement('form');
form.method = 'post';
form.action = "http://127.0.0.1/post";
const hiddenField2 = document.createElement('input');
hiddenField2.type = 'hidden';
hiddenField2.name = "FunimationURL";
hiddenField2.value = tab.url;
form.appendChild(hiddenField2);
document.body.appendChild(form);
form.submit();
setTimeout(function () {
document.getElementById("btn_add_funimation").style.background = "#ff8000"
}, 10000);
setTimeout(function () {
document.getElementById("btn_add_funimation").disabled = false;
}, 10000);
});
});
document.getElementById('btn_add_mass').addEventListener('click', () => {
chrome.tabs.executeScript(null, {
code: 'var i,URLList="";for(i=0;i<document.getElementsByClassName("CRD-Selected").length;i++)URLList+=document.getElementsByClassName("CRD-Selected")[i].getAttribute("href");URLList;'
},
function (results) {
if (results !== null) {
document.getElementById("btn_add_mass").disabled = true;
document.getElementById("btn_add_mass").style.background = "#c9c9c9"
const form = document.createElement('form');
form.method = 'post';
form.action = "http://127.0.0.1/post";
const hiddenField = document.createElement('input');
hiddenField.type = 'hidden';
hiddenField.name = "HTMLMass";
hiddenField.value = results;
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
setTimeout(function () {
document.getElementById("btn_add_mass").style.background = "#ff8000"
}, 4000);
setTimeout(function () {
document.getElementById("btn_add_mass").disabled = false;
}, 4000);
} else {
add_mass_error(results);
}
});
});
function onExecuted(result) {
chrome.tabs.executeScript(null, {
code: "document.getElementsByClassName('episode')[0].href.includes('javascript:');"
},
function (result) {
//alert(result);
if (result == 'true') {
document.getElementById("btn_add").hidden = true;
document.getElementById("btn_add_mass").hidden = false;
document.getElementById("btn_select_all").hidden = false;
document.getElementById("btn_select_none").hidden = false;
document.getElementById("btn_enable_select").hidden = true;
document.getElementById("btn_add_funimation").hidden = true;
document.getElementById("btn_enable_funimation_select").hidden = true;
console.log(true);
} else {
document.getElementById("btn_add").hidden = true;
document.getElementById("btn_enable_select").hidden = false;
document.getElementById("btn_add_mass").hidden = true;
document.getElementById("btn_select_all").hidden = true;
document.getElementById("btn_select_none").hidden = true;
document.getElementById("btn_add_funimation").hidden = true;
document.getElementById("btn_enable_funimation_select").hidden = true;
console.log(false);
}
});
}
function onError(error) {
console.log(`Error: ${error}`);
document.getElementById("btn_add").hidden = false;
document.getElementById("btn_add_mass").hidden = true;
document.getElementById("btn_select_all").hidden = true;
document.getElementById("btn_select_none").hidden = true;
document.getElementById("btn_enable_select").hidden = true;
document.getElementById("btn_add_funimation").hidden = true;
document.getElementById("btn_enable_funimation_select").hidden = true;
}
function add_one_error(error) {
console.log(`Error: ${error}`);
}
function add_mass_error(error) {
console.log(`Error: ${error}`);
}
//funimation
document.getElementById('btn_enable_funimation_select').addEventListener('click', () => {
// browser.tabs.executeScript({
// code: 'var script=document.createElement("script");script.type="text/javascript",script.src="http://127.0.0.1/inject_funimation.js",document.head.appendChild(script);'
// }); //load script from local CRD Server included in https://github.com/hama3254/Crunchyroll-Downloader-v3.0
chrome.tabs.executeScript(null, {
code: 'var script=document.createElement("script");script.type="text/javascript",script.src="http://127.0.0.1/inject_funimation.js",document.head.appendChild(script);'
});
document.getElementById("btn_add_mass").hidden = false;
document.getElementById("btn_select_all").hidden = false;
document.getElementById("btn_select_none").hidden = false;
document.getElementById("btn_enable_select").hidden = true;
document.getElementById("btn_add").hidden = true;
document.getElementById("btn_add_funimation").hidden = true;
});
function FunimationSuccess(result) {
chrome.tabs.executeScript(null, {
code: "document.getElementsByClassName('trackVideo')[0].href.includes('javascript:');"
},
function (result) {
if (result == 'true') {
document.getElementById("btn_add").hidden = true;
document.getElementById("btn_add_mass").hidden = false;
document.getElementById("btn_select_all").hidden = false;
document.getElementById("btn_select_none").hidden = false;
document.getElementById("btn_enable_select").hidden = true;
document.getElementById("btn_enable_funimation_select").hidden = true;
document.getElementById("btn_add_funimation").hidden = true;
console.log(true);
} else {
document.getElementById("btn_add").hidden = true;
document.getElementById("btn_add_funimation").hidden = true;
document.getElementById("btn_enable_select").hidden = true;
document.getElementById("btn_add_mass").hidden = true;
document.getElementById("btn_select_all").hidden = true;
document.getElementById("btn_select_none").hidden = true;
document.getElementById("btn_enable_funimation_select").hidden = false;
console.log(false);
}
});
}
function FunimationError(error) {
console.log(`Error: ${error}`);
document.getElementById("btn_add").hidden = true;
document.getElementById("btn_add_mass").hidden = true;
document.getElementById("btn_select_all").hidden = true;
document.getElementById("btn_select_none").hidden = true;
document.getElementById("btn_enable_select").hidden = true;
document.getElementById("btn_add_funimation").hidden = false;
document.getElementById("btn_enable_funimation_select").hidden = true;
}

32
CRD-addon/background.js Normal file
View File

@ -0,0 +1,32 @@
browser.webRequest.onHeadersReceived.addListener(
details => {
browser.test.log(`onHeadersReceived ${JSON.stringify(details)}\n`);
if (!details.fromCache) {
//console.log("not cached");
browser.test.sendMessage("statusCode", details.statusCode);
const mime = details.responseHeaders.find(header => {
return header.value && header.name === "Server";
});
if (mime) {
//console.log(mime.value);
browser.runtime.sendMessage({
Server: mime.value
});
} else {
details.responseHeaders.push({
name: "Content-Security-Policy",
value: "upgrade-insecure-requests",
});
}
return {
responseHeaders: details.responseHeaders,
};
} else {
console.log("cached");
}
}, {
urls: ["http://127.0.0.1/*"],
},
["blocking", "responseHeaders"]);

View File

@ -1,7 +1,7 @@
{
"manifest_version": 2,
"name": "Crunchyroll Downloader Addon",
"version": "0.4.0",
"version": "0.4.2",
"description": "A Firefox Addon for my Crunchyroll Downloader",
@ -11,7 +11,9 @@
"permissions": [
"storage",
"activeTab",
"cookies",
"webRequest",
"webRequestBlocking",
"http://127.0.0.1/*",
"tabs"
],
@ -23,6 +25,10 @@
},
"default_title": "CR-Downloader",
"default_popup": "popup.html"
},
"background": {
"scripts": ["background.js"]
}
}

View File

@ -7,7 +7,8 @@
<style>
.body{background-color: #f2f2f2;}
.main-bg {background-color:#757575;}
.frame{height: 70px; width: 770px}
.frame{height: 70px; width: 770px;}
.link{font-size:16px;font-weight:600;line-height:1.5;margin-top:5px;margin-bottom:5px;font-family: Arial, Helvetica, sans-serif;}
</style>
</head>
@ -24,10 +25,11 @@
<button type="button" class='btn_class' id='btn_enable_select'>Select Episodes</button>
<button type="button" class='btn_class' id='btn_select_all'>Select All</button>
<button type="button" class='btn_class' id='btn_select_none'>Deselect All</button>
<a target="_blank" id="txtOutput" class='link' rel="noopener noreferrer" href="https://github.com/hama3254/Crunchyroll-Downloader-v3.0">Enter the port or start the Desktop application</a>
<input name="captchaText" id="txtInput" class='txt_class' type="text" value="">
<button type="button" class='btn_class' id='btn_set_port'>Set Port</button>
</div>
<iframe src="http://127.0.0.1:80" id="CRD-Webserver" width="760px" height="320px" frameborder="0"></iframe>
</center>
<script type="text/javascript" src="popup.js"></script>
</body>

View File

@ -7,56 +7,16 @@ document.getElementById("btn_select_none").hidden = true;
document.getElementById("btn_enable_funimation_select").hidden = true;
document.getElementById("btn_add_funimation").hidden = true;
document.getElementById("btn_add_AoD").hidden = true;
document.getElementById("CRD-Webserver").hidden = true;
function setItem() {
console.log("OK");
}
function notsetItem() {
console.log("Not OK");
}
browser.storage.local.get("CRD_Port")
.then(gotPort, NoPort);
function gotPort(result) {
try {
onStartup(result.CRD_Port.value);
console.log("Port: " + result.CRD_Port.value)
} catch (e) {
onStartup(80);
console.log("no port")
}
}
function NoPort(result) {
//onStartup(80);
console.log("no port")
}
function onStartup(result) {
console.log(result);
Port = result;
const xhr = new XMLHttpRequest(),
method = "GET",
url = "http://localhost:" + Port + "/CRD_Handshake";
xhr.open(method, url, true);
xhr.onreadystatechange = function () {
// In local files, status is 0 upon success in Mozilla Firefox
if (xhr.readyState === XMLHttpRequest.DONE) {
//var status = xhr.status;
//status === 0 || (status >= 200 && status < 400)
console.log(xhr.responseText);
if (xhr.responseText == "CRD_Handshake_Confirm") {
function getServerValue(request, sender, sendResponse) {
if (request.Server == "CRD 1.0") {
document.getElementById("CRD-Webserver").hidden = false;
document.getElementById("txtOutput").remove();
document.getElementById("txtInput").hidden = true;
document.getElementById("btn_set_port").hidden = true;
document.getElementById("CRD-Webserver").hidden = false
document.getElementById("CRD-Webserver").src = "http://localhost:" + Port;
// The request has been completed successfully
browser.tabs.query({
currentWindow: true,
active: true
@ -101,30 +61,60 @@ function onStartup(result) {
document.getElementById("btn_add_AoD").hidden = true;
}
}, console.error)
i = 91;
} else {
console.log("No CRD found");
// Oh no! There has been an error with the request!
} else {}
}
browser.runtime.onMessage.addListener(getServerValue);
function setItem() {
console.log("OK");
}
function notsetItem() {
console.log("Not OK");
}
function gotPort(result) {
try {
onStartup(result.CRD_Port.value);
console.log("Port: " + result.CRD_Port.value)
} catch (e) {
onStartup(80);
console.log("no port")
}
}
};
xhr.send();
}
function NoPort(result) {
onStartup(80);
console.log("no port")
}
function onStartup(result) {
Port = result;
var ifrm = document.createElement("iframe");
ifrm.src = "http://127.0.0.1:" + Port;
ifrm.style = "border:0px solid black;";
ifrm.style.width = "760px";
ifrm.style.height = "320px";
ifrm.id = "CRD-Webserver";
ifrm.hidden = true;
document.body.appendChild(ifrm);
}
document.getElementById('btn_set_port').addEventListener('click', () => {
let CRD_Port = {
let CRD_Port = {
value: document.getElementById('txtInput').value
}
}
browser.storage.local.set({
browser.storage.local.set({
CRD_Port
})
.then(setItem, notsetItem);
})
.then(setItem, notsetItem);
window.close();
window.close();
});
document.getElementById('btn_add_AoD').addEventListener('click', () => {
//browser.cookies.getAllCookieStores().then((cookie) => {
// browser.cookies.getAll({
@ -145,7 +135,7 @@ document.getElementById('btn_add_AoD').addEventListener('click', () => {
document.getElementById('btn_enable_select').addEventListener('click', () => {
browser.tabs.executeScript({
code: 'var script=document.createElement("script");script.type="text/javascript",script.src="http://127.0.0.1:'+Port+'/inject.js",document.head.appendChild(script);'
code: 'var script=document.createElement("script");script.type="text/javascript",script.src="http://127.0.0.1:' + Port + '/inject.js",document.head.appendChild(script);'
}); //load script from local CRD Server included in https://github.com/hama3254/Crunchyroll-Downloader-v3.0
document.getElementById("btn_add_mass").hidden = false;
@ -283,7 +273,7 @@ function add_fun_ok(result) {
document.getElementById("btn_add_funimation").style.background = "#c9c9c9"
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "http://127.0.0.1:"+Port+"/post", true);
xhttp.open("POST", "http://127.0.0.1:" + Port + "/post", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("FunimationURL=" + tab.url);
@ -303,7 +293,7 @@ function add_one_ok(result) {
document.getElementById("btn_add").style.background = "#c9c9c9"
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "http://127.0.0.1:"+Port+"/post", true);
xhttp.open("POST", "http://127.0.0.1:" + Port + "/post", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("HTMLSingle=" + result);
@ -325,7 +315,7 @@ function add_mass_ok(result) {
document.getElementById("btn_add_mass").style.background = "#c9c9c9"
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "http://127.0.0.1:"+Port+"/post", true);
xhttp.open("POST", "http://127.0.0.1:" + Port + "/post", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("HTMLMass=" + result);
@ -346,7 +336,7 @@ function add_mass_error(error) {
document.getElementById('btn_enable_funimation_select').addEventListener('click', () => {
browser.tabs.executeScript({
code: 'var script=document.createElement("script");script.type="text/javascript",script.src="http://127.0.0.1:'+Port+'/inject_funimation.js",document.head.appendChild(script);'
code: 'var script=document.createElement("script");script.type="text/javascript",script.src="http://127.0.0.1:' + Port + '/inject_funimation.js",document.head.appendChild(script);'
}); //load script from local CRD Server included in https://github.com/hama3254/Crunchyroll-Downloader-v3.0
document.getElementById("btn_add_mass").hidden = false;

View File

@ -1190,6 +1190,7 @@ Public Class Anime_Add
Dim ResoSplit() As String = AoDTempReso.Split(New String() {"x"}, System.StringSplitOptions.RemoveEmptyEntries)
DisplayReso = ResoSplit(1) + "p"
End If
Dim L1Name As String = "anime-on-demand.de" 'L1Name_Split(1).Replace("www.", "") + " | Dub : " + FunimationDub
Me.Invoke(New Action(Function()
Main.ListItemAdd(Pfad2, L1Name, AoDTitle, DisplayReso, "Unknown", "None", AoDThumbnail, AoDm3u8Final, DownloadPfad, "AoD")

View File

@ -641,8 +641,15 @@ Public Class CRD_List_Item
'Dim archive As Zipfi = New ZipArchive(ms)
'Dim m3u8String As String = client.DownloadString(TextBox1.Text)
Try
Dim m3u8 As String = DecompressString(client.DownloadData(m3u8_url(1)))
Text = m3u8
text = m3u8
Catch ex As Exception
Dim m3u8 As String = client.DownloadString(m3u8_url(1))
text = m3u8
End Try
'MsgBox(m3u8)
End Using
Catch ex As Exception
@ -1091,7 +1098,11 @@ Public Class CRD_List_Item
If CBool(InStr(ResoSearch(2), " [")) = True Then
Dim ResoSearch2() As String = ResoSearch(2).Split(New String() {" ["}, System.StringSplitOptions.RemoveEmptyEntries)
Me.Invoke(New Action(Function()
If Label_Reso.Text = "1080p+" Then
Else
Label_Reso.Text = ResoSearch2(0) + "p"
End If
Return Nothing
End Function))
End If

View File

@ -10,10 +10,13 @@ Imports MetroFramework.Forms
Imports MetroFramework
Imports MetroFramework.Components
Imports System.Globalization
Imports System.ComponentModel
Public Class Main
Inherits MetroForm
Dim HTML As String = Nothing
Public Manager As New MetroStyleManager
Public DarkModeValue As Boolean = False
@ -102,6 +105,8 @@ Public Class Main
Public Funimation_dfxp As Boolean = False
Public SubFunimationString As String = "en"
Public SubFunimation As New List(Of String)
Public DefaultSubFunimation As String = "Disabled"
Public DefaultSubCR As String = "Disabled"
#Region "Sprachen Vairablen"
Public URL_Invaild As String = "something is wrong here..."
@ -385,6 +390,18 @@ Public Class Main
Catch ex As Exception
End Try
Try
Dim rkg As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\CRDownloader")
DefaultSubFunimation = rkg.GetValue("DefaultSubFunimation").ToString
Catch ex As Exception
End Try
Try
Dim rkg As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\CRDownloader")
DefaultSubCR = rkg.GetValue("DefaultSubCR").ToString
Catch ex As Exception
End Try
Try
Dim rkg As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\CRDownloader")
Startseite = rkg.GetValue("Startseite").ToString
@ -1421,6 +1438,8 @@ Public Class Main
CR_Anime_Folge_int = CR_Anime_Folge_int.Replace(",", ".")
End If
End If
ElseIf Integer.Parse(CR_Anime_Folge_int) < 10 Then
CR_Anime_Folge_int = "0" + CR_Anime_Folge_int
End If
End If
@ -1649,7 +1668,12 @@ Public Class Main
If SoftSubs2.Count > 0 Then
If MergeSubstoMP4 = True Then
Dim DispositionIndex As Integer
For i As Integer = 0 To SoftSubs2.Count - 1
Debug.WriteLine(SoftSubs2(i))
If SoftSubs2(i) = DefaultSubCR Then
DispositionIndex = i
End If
Dim SoftSub As String() = WebbrowserText.Split(New String() {Chr(34) + "language" + Chr(34) + ":" + Chr(34) + SoftSubs2(i) + Chr(34) + "," + Chr(34) + "url" + Chr(34) + ":" + Chr(34)}, System.StringSplitOptions.RemoveEmptyEntries)
Dim SoftSub_2 As String() = SoftSub(1).Split(New [Char]() {Chr(34)})
Dim SoftSub_3 As String = SoftSub_2(0).Replace("\/", "/")
@ -1666,7 +1690,10 @@ Public Class Main
End If
Next
If DispositionIndex = Nothing Then
Else
SoftSubMergeMetatata = SoftSubMergeMetatata + " -disposition:s:" + DispositionIndex + " default"
End If
Else
For i As Integer = 0 To SoftSubs2.Count - 1
LabelUpdate = "Status: downloading subtitle file"
@ -1691,7 +1718,7 @@ Public Class Main
Next
End If
'SoftSubMergeMetatata = SoftSubMergeMetatata + " -disposition:s:0 default"
End If
#End Region
@ -1919,23 +1946,29 @@ Public Class Main
ItemList(i).KillRunningTask()
Next
Try
tcpListener.Stop()
Catch ex As Exception
End Try
'Try
' tcpListener.Stop()
'Catch ex As Exception
'End Try
RemoveTempFiles()
Me.Close()
End If
Else
Try
tcpListener.Stop()
Catch ex As Exception
End Try
'Try
' tcpListener.Stop()
'Catch ex As Exception
' MsgBox(ex.ToString)
'End Try
Timer3.Enabled = False
RemoveTempFiles()
Me.Close()
End If
End Sub
Private Sub RemoveTempFiles()
@ -2749,8 +2782,14 @@ Public Class Main
If UsedSubs.Count > 0 Then
If MergeSubstoMP4 = True Then
Dim DispositionIndex As Integer
For i As Integer = 0 To UsedSubs.Count - 1
Dim SoftSub As String() = UsedSubs.Item(i).Split(New String() {" , "}, System.StringSplitOptions.RemoveEmptyEntries)
Debug.WriteLine(SoftSub(1))
If DefaultSubFunimation = SoftSub(1) Then
Debug.WriteLine(SoftSub(1))
DispositionIndex = i
End If
If SoftSubMergeURLs = Nothing Then
SoftSubMergeURLs = " -headers " + My.Resources.ffmpeg_user_agend + " -i " + Chr(34) + SoftSub(0) + Chr(34)
Else
@ -2768,7 +2807,10 @@ Public Class Main
End If
Next
If DispositionIndex = Nothing Then
Else
SoftSubMergeMetatata = SoftSubMergeMetatata + " -disposition:s:" + DispositionIndex + " default"
End If
Else
For i As Integer = 0 To UsedSubs.Count - 1
LabelUpdate = "Status: downloading subtitle file"
@ -2897,83 +2939,150 @@ Public Class Main
c = c.Replace("balken1.png", Balken)
Dim CC As String = "cc.png"
c = c.Replace("cc1.png", CC)
My.Computer.FileSystem.WriteAllText(Application.StartupPath + "\WebInterface\index.html", c, False)
'My.Computer.FileSystem.WriteAllText(Application.StartupPath + "\WebInterface\index.html", c, False)
HTML = c
Catch ex As Exception
'Debug.WriteLine(ex.ToString)
'MsgBox(ex.ToString)
End Try
End Sub
#Region "server"
Dim tcpListener As TcpListener
Public Sub ServerStart()
'Dim tcpListener As TcpListener
'Public Sub ServerStart()
' Try
' Dim hostName As String = "localhost" 'Dns.GetHostName()
' Dim Adresscount As Integer
' For i As Integer = 0 To Dns.GetHostEntry(hostName).AddressList.Count - 1
' If Dns.GetHostEntry(hostName).AddressList(i).ToString = "127.0.0.1" Then
' Adresscount = i
' End If
' Next
' If Adresscount = Nothing Then
' MsgBox("http server start failed")
' Exit Sub
' End If
' Dim serverIP As IPAddress = Dns.GetHostEntry(hostName).AddressList(Adresscount) 'Dns.Resolve(hostName).AddressList(0) 'New IPAddress("localhost") '
' Dim Port As String = StartServer
' tcpListener = New TcpListener(serverIP, Int32.Parse(Port))
' tcpListener.Start()
' Debug.WriteLine("Web server started at: " & serverIP.ToString() & ":" & Port)
' ProcessThread()
' Catch abort As ThreadAbortException
' Exit Sub
' MsgBox(abort.ToString())
' Catch ex As Exception
' MsgBox(ex.ToString())
' End Try
'End Sub
'Public Sub ProcessThread()
' Dim ServerRunning = True
' Dim clientSocket As Socket
' While ServerRunning = True
' Try
' clientSocket = tcpListener.AcceptSocket
' clientSocket.ReceiveBufferSize = 1048576
' ' Socket Information
' 'Dim clientInfo As IPEndPoint = CType(clientSocket.RemoteEndPoint, IPEndPoint)
' 'Debug.WriteLine("Client: " + clientInfo.Address.ToString() + ":" + clientInfo.Port.ToString())
' ' Set Thread for each Web Browser Connection
' Dim clientThread As New Thread(Sub() Me.ProcessRequest(clientSocket))
' clientThread.Start()
' Catch ex As Exception
' Debug.WriteLine(ex.ToString())
' Try
' clientSocket.Close()
' Catch ex2 As Exception
' End Try
' ServerRunning = False
' Exit Sub
' End Try
' End While
' 'New AsyncCallback(AddressOf DoAcceptSocketCallback), listener
'End Sub
Dim ListOfThread As New List(Of Thread)
Sub ServerStart()
Dim server As TcpListener
server = Nothing
Try
Dim hostName As String = "localhost" 'Dns.GetHostName()
Dim Adresscount As Integer
For i As Integer = 0 To Dns.GetHostEntry(hostName).AddressList.Count - 1
If Dns.GetHostEntry(hostName).AddressList(i).ToString = "127.0.0.1" Then
Adresscount = i
End If
Next
If Adresscount = Nothing Then
MsgBox("http server start failed")
Exit Sub
End If
Dim serverIP As IPAddress = Dns.GetHostEntry(hostName).AddressList(Adresscount) 'Dns.Resolve(hostName).AddressList(0) 'New IPAddress("localhost") '
Dim Port As String = StartServer
tcpListener = New TcpListener(serverIP, Int32.Parse(Port))
tcpListener.Start()
Debug.WriteLine("Web server started at: " & serverIP.ToString() & ":" & Port)
ProcessThread()
Dim localAddr As IPAddress = IPAddress.Parse("127.0.0.1")
server = New TcpListener(localAddr, Int32.Parse(port))
Catch abort As ThreadAbortException
' Start listening for client requests.
server.Start()
Exit Sub
Catch ex As Exception
Debug.WriteLine("Web server started at: " & localAddr.ToString() & ":" & port)
MsgBox(ex.ToString())
End Try
End Sub
While True
Public Sub ProcessThread()
While (True)
Dim clientSocket As Socket
Try
clientSocket = tcpListener.AcceptSocket()
clientSocket.ReceiveBufferSize = 1048576
' Socket Information
Dim clientInfo As IPEndPoint = CType(clientSocket.RemoteEndPoint, IPEndPoint)
'Debug.WriteLine("Client: " + clientInfo.Address.ToString() + ":" + clientInfo.Port.ToString())
' Set Thread for each Web Browser Connection
Dim clientThread As New Thread(Sub() Me.ProcessRequest(clientSocket))
Dim client As TcpClient = server.AcceptTcpClient()
Dim clientThread As New Thread(Sub() Me.ManageConnections(client))
clientThread.Start()
Catch abort As ThreadAbortException
Exit Sub
Catch ex As Exception
Debug.WriteLine(ex.ToString())
'If clientSocket.Connected Then
' clientSocket.Close()
'End If
End Try
End While
End Sub
Protected Sub ProcessRequest(ByVal clientSocket As Socket)
Dim recvBytes(1048576) As Byte
Dim htmlReq As String = Nothing
Dim bytes As Long
Try
' Receive HTTP Request from Web Browser
bytes = clientSocket.Receive(recvBytes, 0, clientSocket.Available, SocketFlags.None)
Catch ex As SocketException
Debug.WriteLine("SocketException: " + ex.ToString)
htmlReq = Encoding.UTF8.GetString(recvBytes, 0, bytes)
'MsgBox(htmlReq)
'My.Computer.FileSystem.WriteAllText(Application.StartupPath + "\log.txt", htmlReq + vbNewLine, True)
Finally
Debug.WriteLine(Date.Now + " " + "End server")
server.Stop()
End Try
Debug.WriteLine(ControlChars.Cr + "Hit enter to continue....")
End Sub
Sub ManageConnections(ByVal client As TcpClient)
Dim bytes(1048576) As Byte
Dim stream As NetworkStream = client.GetStream()
' Debug.WriteLine(Date.Now + " " + "stream opend")
Dim numberOfBytesRead As Integer = 0
Dim myCompleteMessage As StringBuilder = New StringBuilder()
Dim stopWatch As New Stopwatch()
stopWatch.Start()
Do While stopWatch.Elapsed.TotalSeconds < 4 And stream.DataAvailable
'Debug.WriteLine(Date.Now + " " + numberOfBytesRead.ToString + " " + stopWatch.Elapsed.TotalSeconds.ToString)
numberOfBytesRead = stream.Read(bytes, 0, bytes.Length)
myCompleteMessage.AppendFormat("{0}", Encoding.UTF8.GetString(bytes, 0, numberOfBytesRead))
Loop
stopWatch.Stop()
ProcessRequest(stream, myCompleteMessage.ToString())
client.Close()
End Sub
Sub ProcessRequest(ByVal stream As NetworkStream, ByVal htmlReq As String)
Dim recvBytes(1048576) As Byte
Try
Dim rootPath As String = Directory.GetCurrentDirectory() & "\WebInterface\"
' Set default page
Dim defaultPage As String = "index.html"
@ -2986,8 +3095,8 @@ Public Class Main
If strArray(0).Trim().ToUpper.Equals("POST") Then
'Debug.WriteLine("receiving data from the add-on")
'Debug.WriteLine(UrlDecode(htmlReq))
'Debug.WriteLine(htmlReq)
'UrlDecode
Me.Invoke(New Action(Function()
Me.Text = "Status: receiving data from the add-on"
Me.Invalidate()
@ -3039,7 +3148,7 @@ Public Class Main
End If
End If
strRequest = rootPath & "Post_Single_Sucess.html" 'PostPage
SendHTMLResponse(strRequest, clientSocket)
SendHTMLResponse(strRequest, stream)
Else
Me.Invoke(New Action(Function()
Me.Text = "Status: no video found"
@ -3049,7 +3158,7 @@ Public Class Main
Dim ErrorPage As String = My.Resources.Post_error_Top + "no video found" + My.Resources.Post_error_Bottom
My.Computer.FileSystem.WriteAllText(Application.StartupPath + "\WebInterface\error_Page.html", ErrorPage, False)
strRequest = rootPath & "error_Page.html" 'PostPage
SendHTMLResponse(strRequest, clientSocket)
SendHTMLResponse(strRequest, stream)
End If
Catch abort As ThreadAbortException
Exit Sub
@ -3057,7 +3166,7 @@ Public Class Main
Dim ErrorPage As String = My.Resources.Post_error_Top + ex.ToString + My.Resources.Post_error_Bottom
My.Computer.FileSystem.WriteAllText(Application.StartupPath + "\WebInterface\error_Page.html", ErrorPage, False)
strRequest = rootPath & "error_Page.html" 'PostPage
SendHTMLResponse(strRequest, clientSocket)
SendHTMLResponse(strRequest, stream)
End Try
#End Region
#Region "mass-dl"
@ -3096,14 +3205,14 @@ Public Class Main
End Function))
End If
strRequest = rootPath & "Post_Mass_Sucess.html" 'PostPage
SendHTMLResponse(strRequest, clientSocket)
SendHTMLResponse(strRequest, stream)
Catch abort As ThreadAbortException
Exit Sub
Catch ex As Exception
Dim ErrorPage As String = My.Resources.Post_error_Top + ex.ToString + My.Resources.Post_error_Bottom
My.Computer.FileSystem.WriteAllText(Application.StartupPath + "\WebInterface\error_Page.html", ErrorPage, False)
strRequest = rootPath & "error_Page.html" 'PostPage
SendHTMLResponse(strRequest, clientSocket)
SendHTMLResponse(strRequest, stream)
End Try
#End Region
#Region "funimation Einzeln"
@ -3203,71 +3312,80 @@ Public Class Main
End If
End If
strRequest = rootPath & "Post_Single_Sucess.html" 'PostPage
SendHTMLResponse(strRequest, clientSocket)
SendHTMLResponse(strRequest, stream)
Catch abort As ThreadAbortException
Exit Sub
Catch ex As Exception
Dim ErrorPage As String = My.Resources.Post_error_Top + ex.ToString + My.Resources.Post_error_Bottom
My.Computer.FileSystem.WriteAllText(Application.StartupPath + "\WebInterface\error_Page.html", ErrorPage, False)
strRequest = rootPath & "error_Page.html" 'PostPage
SendHTMLResponse(strRequest, clientSocket)
SendHTMLResponse(strRequest, stream)
End Try
#End Region
Else
strRequest = rootPath & "error_Page_default.html" 'PostPage
SendHTMLResponse(strRequest, clientSocket)
SendHTMLResponse(strRequest, stream)
End If
ElseIf strArray(0).Trim().ToUpper.Equals("GET") Then
'Debug.WriteLine(Date.Now + " " + "found GET while procesing")
If InStr(htmlReq, "CRD_Handshake") Then
SendHTMLResponse("Handshake_Confirm", clientSocket)
Exit Sub
End If
'Debug.WriteLine(Date.Now + " " + strArray(1))
strRequest = strArray(1).Trim
If strRequest.StartsWith("/") Then
strRequest = strRequest.Substring(1)
End If
If strRequest.EndsWith("/") Or strRequest.Equals("") Then
strRequest = strRequest & defaultPage '"HTMLString" 'strRequest & defaultPage
End If
If strRequest.EndsWith("/") Or strRequest.Equals("") Then
'Debug.WriteLine(Date.Now + " " + "it's index.html")
strRequest = strRequest & defaultPage '"HTMLString" 'strRequest & defaultPage
End If
'If InStr(htmlReq, "CRD_Handshake") Then
' 'Debug.WriteLine(Date.Now + " " + "it's a handshake")
' SendHTMLResponse("Handshake_Confirm", stream)
'Else
'
'End If
strRequest = rootPath & strRequest
SendHTMLResponse(strRequest, clientSocket)
SendHTMLResponse(strRequest, stream)
Else ' Not HTTP GET method
'Debug.WriteLine(Date.Now + " " + "empty request, returning index.html")
'Debug.WriteLine(Date.Now + " " + strArray(0))
strRequest = rootPath & defaultPage
SendHTMLResponse(strRequest, clientSocket)
SendHTMLResponse(strRequest, stream)
End If
Catch abort As ThreadAbortException
Exit Sub
Catch ex As Exception
Debug.WriteLine(ex.ToString())
Dim ErrorPage As String = My.Resources.Post_error_Top + ex.ToString + My.Resources.Post_error_Bottom
My.Computer.FileSystem.WriteAllText(Application.StartupPath + "\WebInterface\error_Page.html", ErrorPage, False)
'strRequest = rootPath & "error_Page.html" 'PostPage
SendHTMLResponse(Application.StartupPath + "\WebInterface\error_Page.html", clientSocket)
'If clientSocket.Connected Then
' clientSocket.Close()
'End If
SendHTMLResponse(Application.StartupPath + "\WebInterface\error_Page.html", stream)
End Try
End Sub
' Send HTTP Response
Private Sub SendHTMLResponse(ByVal httpRequest As String, ByVal clientSocket As Socket)
Private Sub SendHTMLResponse(ByVal httpRequest As String, ByVal stream As NetworkStream)
Try
Dim respByte() As Byte
If File.Exists(httpRequest) Then
If InStr(httpRequest, "index.html") Then
Debug.WriteLine(httpRequest)
respByte = File.ReadAllBytes(httpRequest)
respByte = System.Text.Encoding.UTF8.GetBytes(HTML) 'File.ReadAllBytes("") '
' Set HTML Header
Dim htmlHeader As String =
@ -3280,27 +3398,52 @@ Public Class Main
Dim headerByte() As Byte = Encoding.UTF8.GetBytes(htmlHeader)
'Debug.WriteLine("HTML Header: " & ControlChars.CrLf & htmlHeader)
' Send HTML Header back to Web Browser
clientSocket.Send(headerByte, 0, headerByte.Length, SocketFlags.None)
'Dim response() As Byte = headerByte.Concat(respByte).ToArray()
' stream.Write(response, 0, response.Length)
'Debug.WriteLine("sending headers")
stream.Write(headerByte, 0, headerByte.Length)
'Debug.WriteLine("headers send")
'Debug.WriteLine("sending content")
' Send HTML Content back to Web Browser
clientSocket.Send(respByte, 0, respByte.Length, SocketFlags.None)
stream.Write(respByte, 0, respByte.Length)
'clientSocket.Send(respByte, 0, respByte.Length, SocketFlags.None)
' Close HTTP Socket connection
clientSocket.Shutdown(SocketShutdown.Both)
clientSocket.Close()
'Debug.WriteLine("content send")
ElseIf File.Exists(httpRequest) Then
Debug.WriteLine(httpRequest)
respByte = File.ReadAllBytes(httpRequest)
' Set HTML Header
Dim htmlHeader As String =
"HTTP/1.0 200 OK" & ControlChars.CrLf &
"Server: CRD 1.0" & ControlChars.CrLf &
"Content-Length: " & respByte.Length & ControlChars.CrLf &
"Content-Type: " & GetContentType(httpRequest) &
"Connection: close" &
ControlChars.CrLf & ControlChars.CrLf
' The content Length of HTML Header
Dim headerByte() As Byte = Encoding.UTF8.GetBytes(htmlHeader)
' Send HTML Header back to Web Browser
stream.Write(headerByte, 0, headerByte.Length)
' Send HTML Content back to Web Browser
stream.Write(respByte, 0, respByte.Length)
ElseIf httpRequest = "Handshake_Confirm" Then
respByte = System.Text.Encoding.UTF8.GetBytes("CRD_Handshake_Confirm") 'File.ReadAllBytes("") '
Dim htmlHeader As String =
"HTTP/1.0 200 OK" & ControlChars.CrLf &
"Server: CRD 1.0" & ControlChars.CrLf &
"Access-Control-Allow-Origin: *" & ControlChars.CrLf &
"Content-Length: " & respByte.Length & ControlChars.CrLf &
"Content-Type: text/plain" &
"Connection: close" &
ControlChars.CrLf & ControlChars.CrLf
Dim headerByte() As Byte = Encoding.UTF8.GetBytes(htmlHeader)
clientSocket.Send(headerByte, 0, headerByte.Length, SocketFlags.None)
clientSocket.Send(respByte, 0, respByte.Length, SocketFlags.None)
clientSocket.Shutdown(SocketShutdown.Both)
clientSocket.Close()
stream.Write(headerByte, 0, headerByte.Length)
' Send HTML Content back to Web Browser
stream.Write(respByte, 0, respByte.Length)
Debug.WriteLine("content send")
Else
respByte = Encoding.UTF8.GetBytes(My.Resources.Error_404) 'File.ReadAllBytes(httpRequest)
@ -3309,29 +3452,27 @@ Public Class Main
Dim htmlHeader As String =
"HTTP/1.0 404 Not Found" & ControlChars.CrLf &
"Server: WebServer 1.0" & ControlChars.CrLf &
"Connection: close" &
ControlChars.CrLf & ControlChars.CrLf
' The content Length of HTML Header
Dim headerByte() As Byte = Encoding.UTF8.GetBytes(htmlHeader)
' Send HTML Header back to Web Browser
clientSocket.Send(headerByte, 0, headerByte.Length, SocketFlags.None)
stream.Write(headerByte, 0, headerByte.Length)
'stream.Write(headerByte, 0, headerByte.Length, SocketFlags.None)
' Send HTML Content back to Web Browser
clientSocket.Send(respByte, 0, respByte.Length, SocketFlags.None)
' Close HTTP Socket connection
clientSocket.Shutdown(SocketShutdown.Both)
clientSocket.Close()
stream.Write(respByte, 0, respByte.Length)
End If
Catch abort As ThreadAbortException
Exit Sub
Catch ex As Exception
'Debug.WriteLine(ex.ToString())
If clientSocket.Connected Then
clientSocket.Close()
End If
Debug.WriteLine(ex.ToString())
End Try
End Sub
' Get Content Type
Private Function GetContentType(ByVal httpRequest As String) As String
If (httpRequest.EndsWith("html")) Then
@ -3389,9 +3530,6 @@ Public Class Main
network_scan.Show()
End Sub
#End Region

View File

@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("3.7.4")>
<Assembly: AssemblyFileVersion("3.7.4")>
<Assembly: AssemblyVersion("3.7.5")>
<Assembly: AssemblyFileVersion("3.7.5")>
<Assembly: NeutralResourcesLanguage("en")>

View File

@ -30,5 +30,17 @@
End Sub
Public Sub Pause_ms(ByVal ms As Integer)
'Programmausführung verzögern *******************************************************
Dim stopWatch As New Stopwatch()
stopWatch.Start()
Do Until stopWatch.Elapsed.TotalMilliseconds > ms
Application.DoEvents()
Loop
stopWatch.Stop()
End Sub
End Module

View File

@ -43,7 +43,7 @@
</div>
<h1>Failed!</h1>
<p>System.IndexOutOfRangeException: Der Index war außerhalb des Arraybereichs.
bei Crunchyroll_Downloader.Main.ProcessRequest(Socket clientSocket) in D:\Projecte\Crunchyroll Downloader - v3.0-final\Crunchyroll-Downloader-v3.0\Crunchyroll Downloader\Main.vb:Zeile 2906.</p>
bei Crunchyroll_Downloader.Main.ProcessRequest(NetworkStream stream, String htmlReq) in D:\Projecte\Crunchyroll Downloader - v3.0-final\Crunchyroll-Downloader-v3.0\Crunchyroll Downloader\Main.vb:Zeile 3178.</p>
</div>
</body>
</html>

View File

@ -30,6 +30,8 @@ Partial Class Einstellungen
Me.TabPage4 = New System.Windows.Forms.TabPage()
Me.TabControl2 = New MetroFramework.Controls.MetroTabControl()
Me.TabPage5 = New MetroFramework.Controls.MetroTabPage()
Me.GroupBox14 = New System.Windows.Forms.GroupBox()
Me.CR_SoftSubDefault = New MetroFramework.Controls.MetroComboBox()
Me.PictureBox2 = New System.Windows.Forms.PictureBox()
Me.SoftSubs = New System.Windows.Forms.GroupBox()
Me.CBesES = New MetroFramework.Controls.MetroCheckBox()
@ -108,6 +110,8 @@ Partial Class Einstellungen
Me.NumericUpDown1 = New System.Windows.Forms.NumericUpDown()
Me.TabControl1 = New MetroFramework.Controls.MetroTabControl()
Me.TabPage6 = New MetroFramework.Controls.MetroTabPage()
Me.GroupBox13 = New System.Windows.Forms.GroupBox()
Me.FunSubDef = New MetroFramework.Controls.MetroComboBox()
Me.GroupBox11 = New System.Windows.Forms.GroupBox()
Me.CB_srt = New MetroFramework.Controls.MetroCheckBox()
Me.CB_vtt = New MetroFramework.Controls.MetroCheckBox()
@ -141,6 +145,7 @@ Partial Class Einstellungen
Me.TabPage4.SuspendLayout()
Me.TabControl2.SuspendLayout()
Me.TabPage5.SuspendLayout()
Me.GroupBox14.SuspendLayout()
CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SoftSubs.SuspendLayout()
Me.GB_SubLanguage.SuspendLayout()
@ -165,6 +170,7 @@ Partial Class Einstellungen
CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.TabControl1.SuspendLayout()
Me.TabPage6.SuspendLayout()
Me.GroupBox13.SuspendLayout()
Me.GroupBox11.SuspendLayout()
Me.GroupBox10.SuspendLayout()
Me.GroupBox7.SuspendLayout()
@ -209,10 +215,10 @@ Partial Class Einstellungen
'
Me.TabPage4.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(243, Byte), Integer), CType(CType(243, Byte), Integer))
Me.TabPage4.Controls.Add(Me.TabControl2)
Me.TabPage4.Location = New System.Drawing.Point(4, 35)
Me.TabPage4.Location = New System.Drawing.Point(4, 44)
Me.TabPage4.Name = "TabPage4"
Me.TabPage4.Padding = New System.Windows.Forms.Padding(3)
Me.TabPage4.Size = New System.Drawing.Size(493, 461)
Me.TabPage4.Size = New System.Drawing.Size(493, 452)
Me.TabPage4.TabIndex = 3
Me.TabPage4.Text = "Crunchyroll"
'
@ -227,13 +233,14 @@ Partial Class Einstellungen
Me.TabControl2.Margin = New System.Windows.Forms.Padding(0)
Me.TabControl2.Name = "TabControl2"
Me.TabControl2.SelectedIndex = 0
Me.TabControl2.Size = New System.Drawing.Size(487, 455)
Me.TabControl2.Size = New System.Drawing.Size(487, 446)
Me.TabControl2.TabIndex = 0
Me.TabControl2.UseSelectable = True
'
'TabPage5
'
Me.TabPage5.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(243, Byte), Integer), CType(CType(243, Byte), Integer))
Me.TabPage5.Controls.Add(Me.GroupBox14)
Me.TabPage5.Controls.Add(Me.PictureBox2)
Me.TabPage5.Controls.Add(Me.SoftSubs)
Me.TabPage5.Controls.Add(Me.GB_SubLanguage)
@ -244,7 +251,7 @@ Partial Class Einstellungen
Me.TabPage5.Location = New System.Drawing.Point(4, 44)
Me.TabPage5.Name = "TabPage5"
Me.TabPage5.Padding = New System.Windows.Forms.Padding(3)
Me.TabPage5.Size = New System.Drawing.Size(479, 407)
Me.TabPage5.Size = New System.Drawing.Size(479, 398)
Me.TabPage5.TabIndex = 0
Me.TabPage5.Text = "Main"
Me.TabPage5.VerticalScrollbarBarColor = True
@ -252,12 +259,40 @@ Partial Class Einstellungen
Me.TabPage5.VerticalScrollbarSize = 10
Me.TabPage5.Visible = False
'
'GroupBox14
'
Me.GroupBox14.BackColor = System.Drawing.Color.Transparent
Me.GroupBox14.Controls.Add(Me.CR_SoftSubDefault)
Me.GroupBox14.Font = New System.Drawing.Font("Arial", 9.75!)
Me.GroupBox14.ForeColor = System.Drawing.Color.Black
Me.GroupBox14.Location = New System.Drawing.Point(6, 242)
Me.GroupBox14.Name = "GroupBox14"
Me.GroupBox14.Size = New System.Drawing.Size(467, 69)
Me.GroupBox14.TabIndex = 57
Me.GroupBox14.TabStop = False
Me.GroupBox14.Text = "default subtitle"
'
'CR_SoftSubDefault
'
Me.CR_SoftSubDefault.DropDownHeight = 250
Me.CR_SoftSubDefault.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.CR_SoftSubDefault.FormattingEnabled = True
Me.CR_SoftSubDefault.IntegralHeight = False
Me.CR_SoftSubDefault.ItemHeight = 23
Me.CR_SoftSubDefault.Items.AddRange(New Object() {"[Disabled]"})
Me.CR_SoftSubDefault.Location = New System.Drawing.Point(69, 30)
Me.CR_SoftSubDefault.Name = "CR_SoftSubDefault"
Me.CR_SoftSubDefault.Size = New System.Drawing.Size(326, 29)
Me.CR_SoftSubDefault.Sorted = True
Me.CR_SoftSubDefault.TabIndex = 33
Me.CR_SoftSubDefault.UseSelectable = True
'
'PictureBox2
'
Me.PictureBox2.BackColor = System.Drawing.Color.Transparent
Me.PictureBox2.Cursor = System.Windows.Forms.Cursors.Hand
Me.PictureBox2.Image = Global.Crunchyroll_Downloader.My.Resources.Resources.crdsettings_setUScookie_button
Me.PictureBox2.Location = New System.Drawing.Point(152, 253)
Me.PictureBox2.Location = New System.Drawing.Point(162, 351)
Me.PictureBox2.Name = "PictureBox2"
Me.PictureBox2.Size = New System.Drawing.Size(150, 30)
Me.PictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize
@ -431,7 +466,7 @@ Partial Class Einstellungen
Me.TabPage3.Location = New System.Drawing.Point(4, 35)
Me.TabPage3.Name = "TabPage3"
Me.TabPage3.Padding = New System.Windows.Forms.Padding(3)
Me.TabPage3.Size = New System.Drawing.Size(479, 416)
Me.TabPage3.Size = New System.Drawing.Size(479, 407)
Me.TabPage3.TabIndex = 3
Me.TabPage3.Text = "Subtile Download"
Me.TabPage3.VerticalScrollbarBarColor = True
@ -970,10 +1005,10 @@ Partial Class Einstellungen
Me.TabPage1.HorizontalScrollbarBarColor = True
Me.TabPage1.HorizontalScrollbarHighlightOnWheel = False
Me.TabPage1.HorizontalScrollbarSize = 10
Me.TabPage1.Location = New System.Drawing.Point(4, 44)
Me.TabPage1.Location = New System.Drawing.Point(4, 35)
Me.TabPage1.Name = "TabPage1"
Me.TabPage1.Padding = New System.Windows.Forms.Padding(3)
Me.TabPage1.Size = New System.Drawing.Size(493, 452)
Me.TabPage1.Size = New System.Drawing.Size(493, 461)
Me.TabPage1.TabIndex = 0
Me.TabPage1.Text = " Main"
Me.TabPage1.VerticalScrollbar = True
@ -1190,7 +1225,7 @@ Partial Class Einstellungen
Me.TabControl1.FontWeight = MetroFramework.MetroTabControlWeight.Regular
Me.TabControl1.Location = New System.Drawing.Point(22, 60)
Me.TabControl1.Name = "TabControl1"
Me.TabControl1.SelectedIndex = 0
Me.TabControl1.SelectedIndex = 3
Me.TabControl1.Size = New System.Drawing.Size(501, 500)
Me.TabControl1.TabIndex = 38
Me.TabControl1.UseSelectable = True
@ -1198,6 +1233,7 @@ Partial Class Einstellungen
'TabPage6
'
Me.TabPage6.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(243, Byte), Integer), CType(CType(243, Byte), Integer))
Me.TabPage6.Controls.Add(Me.GroupBox13)
Me.TabPage6.Controls.Add(Me.GroupBox11)
Me.TabPage6.Controls.Add(Me.GroupBox10)
Me.TabPage6.Controls.Add(Me.GroupBox7)
@ -1205,10 +1241,10 @@ Partial Class Einstellungen
Me.TabPage6.HorizontalScrollbarBarColor = True
Me.TabPage6.HorizontalScrollbarHighlightOnWheel = False
Me.TabPage6.HorizontalScrollbarSize = 10
Me.TabPage6.Location = New System.Drawing.Point(4, 35)
Me.TabPage6.Location = New System.Drawing.Point(4, 44)
Me.TabPage6.Name = "TabPage6"
Me.TabPage6.Padding = New System.Windows.Forms.Padding(3)
Me.TabPage6.Size = New System.Drawing.Size(493, 461)
Me.TabPage6.Size = New System.Drawing.Size(493, 452)
Me.TabPage6.TabIndex = 4
Me.TabPage6.Text = "Funimation"
Me.TabPage6.VerticalScrollbarBarColor = True
@ -1216,6 +1252,34 @@ Partial Class Einstellungen
Me.TabPage6.VerticalScrollbarSize = 10
Me.TabPage6.Visible = False
'
'GroupBox13
'
Me.GroupBox13.BackColor = System.Drawing.Color.Transparent
Me.GroupBox13.Controls.Add(Me.FunSubDef)
Me.GroupBox13.Font = New System.Drawing.Font("Arial", 9.75!)
Me.GroupBox13.ForeColor = System.Drawing.Color.Black
Me.GroupBox13.Location = New System.Drawing.Point(6, 270)
Me.GroupBox13.Name = "GroupBox13"
Me.GroupBox13.Size = New System.Drawing.Size(475, 69)
Me.GroupBox13.TabIndex = 56
Me.GroupBox13.TabStop = False
Me.GroupBox13.Text = "default subtitle"
'
'FunSubDef
'
Me.FunSubDef.DropDownHeight = 250
Me.FunSubDef.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.FunSubDef.FormattingEnabled = True
Me.FunSubDef.IntegralHeight = False
Me.FunSubDef.ItemHeight = 23
Me.FunSubDef.Items.AddRange(New Object() {"[Disabled]"})
Me.FunSubDef.Location = New System.Drawing.Point(69, 30)
Me.FunSubDef.Name = "FunSubDef"
Me.FunSubDef.Size = New System.Drawing.Size(326, 29)
Me.FunSubDef.Sorted = True
Me.FunSubDef.TabIndex = 33
Me.FunSubDef.UseSelectable = True
'
'GroupBox11
'
Me.GroupBox11.BackColor = System.Drawing.Color.Transparent
@ -1272,7 +1336,7 @@ Partial Class Einstellungen
Me.GroupBox10.Controls.Add(Me.Fun_Dub_Over)
Me.GroupBox10.Font = New System.Drawing.Font("Arial", 9.75!)
Me.GroupBox10.ForeColor = System.Drawing.Color.Black
Me.GroupBox10.Location = New System.Drawing.Point(6, 270)
Me.GroupBox10.Location = New System.Drawing.Point(6, 345)
Me.GroupBox10.Name = "GroupBox10"
Me.GroupBox10.Size = New System.Drawing.Size(475, 69)
Me.GroupBox10.TabIndex = 55
@ -1590,6 +1654,7 @@ Partial Class Einstellungen
Me.TabControl2.ResumeLayout(False)
Me.TabPage5.ResumeLayout(False)
Me.TabPage5.PerformLayout()
Me.GroupBox14.ResumeLayout(False)
CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).EndInit()
Me.SoftSubs.ResumeLayout(False)
Me.SoftSubs.PerformLayout()
@ -1622,6 +1687,7 @@ Partial Class Einstellungen
CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).EndInit()
Me.TabControl1.ResumeLayout(False)
Me.TabPage6.ResumeLayout(False)
Me.GroupBox13.ResumeLayout(False)
Me.GroupBox11.ResumeLayout(False)
Me.GroupBox11.PerformLayout()
Me.GroupBox10.ResumeLayout(False)
@ -1751,4 +1817,8 @@ Partial Class Einstellungen
Friend WithEvents DD_Episode_Prefix As MetroFramework.Controls.MetroComboBox
Friend WithEvents DD_Season_Prefix As MetroFramework.Controls.MetroComboBox
Friend WithEvents http_support As MetroFramework.Controls.MetroComboBox
Friend WithEvents GroupBox13 As GroupBox
Friend WithEvents FunSubDef As MetroFramework.Controls.MetroComboBox
Friend WithEvents GroupBox14 As GroupBox
Friend WithEvents CR_SoftSubDefault As MetroFramework.Controls.MetroComboBox
End Class

View File

@ -126,6 +126,9 @@
<metadata name="MenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>118, 20</value>
</metadata>
<metadata name="MenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>118, 20</value>
</metadata>
<metadata name="BackgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>332, 20</value>
</metadata>

View File

@ -251,6 +251,42 @@ Public Class Einstellungen
Catch ex As Exception
End Try
If Main.DefaultSubFunimation = "en" Then
FunSubDef.SelectedItem = "English"
ElseIf Main.DefaultSubFunimation = "pt" Then
FunSubDef.SelectedItem = "Português (Brasil)"
ElseIf Main.DefaultSubFunimation = "es" Then
FunSubDef.SelectedItem = "Español (LA)"
Else
FunSubDef.SelectedItem = "[Disabled]"
'FunimationHardsub.Checked = True
End If
If Main.DefaultSubCR = "deDE" Then
CR_SoftSubDefault.SelectedItem = "Deutsch"
ElseIf Main.DefaultSubCR = "enUS" Then
CR_SoftSubDefault.SelectedItem = "English"
ElseIf Main.DefaultSubCR = "ptBR" Then
CR_SoftSubDefault.SelectedItem = "Português (Brasil)"
ElseIf Main.DefaultSubCR = "esLA" Then
CR_SoftSubDefault.SelectedItem = "Español (LA)"
ElseIf Main.DefaultSubCR = "frFR" Then
CR_SoftSubDefault.SelectedItem = "Français (France)"
ElseIf Main.DefaultSubCR = "arME" Then
CR_SoftSubDefault.SelectedItem = "العربية (Arabic)"
ElseIf Main.DefaultSubCR = "ruRU" Then
CR_SoftSubDefault.SelectedItem = "Русский (Russian)"
ElseIf Main.DefaultSubCR = "itIT" Then
CR_SoftSubDefault.SelectedItem = "Italiano (Italian)"
ElseIf Main.DefaultSubCR = "esES" Then
CR_SoftSubDefault.SelectedItem = "Español (España)"
Else
CR_SoftSubDefault.SelectedItem = "[Disabled]"
End If
End Sub
Private Sub PictureBox4_Click(sender As Object, e As EventArgs) Handles pictureBox4.Click
@ -369,6 +405,48 @@ Public Class Einstellungen
End If
If CR_SoftSubDefault.SelectedItem.ToString = "English" Then
Main.DefaultSubCR = "enUS"
rk.SetValue("DefaultSubCR", "enUS", RegistryValueKind.String)
ElseIf CR_SoftSubDefault.SelectedItem.ToString = "Deutsch" Then
Main.DefaultSubCR = "deDE"
rk.SetValue("DefaultSubCR", "deDE", RegistryValueKind.String)
ElseIf CR_SoftSubDefault.SelectedItem.ToString = "Português (Brasil)" Then
Main.DefaultSubCR = "ptBR"
rk.SetValue("DefaultSubCR", "ptBR", RegistryValueKind.String)
ElseIf CR_SoftSubDefault.SelectedItem.ToString = "Español (LA)" Then
Main.DefaultSubCR = "esLA"
rk.SetValue("DefaultSubCR", "esLA", RegistryValueKind.String)
ElseIf CR_SoftSubDefault.SelectedItem.ToString = "Français (France)" Then
Main.DefaultSubCR = "frFR"
rk.SetValue("DefaultSubCR", "frFR", RegistryValueKind.String)
ElseIf CR_SoftSubDefault.SelectedItem.ToString = "العربية (Arabic)" Then
Main.DefaultSubCR = "arME"
rk.SetValue("DefaultSubCR", "arME", RegistryValueKind.String)
ElseIf CR_SoftSubDefault.SelectedItem.ToString = "Русский (Russian)" Then
Main.DefaultSubCR = "ruRU"
rk.SetValue("DefaultSubCR", "ruRU", RegistryValueKind.String)
ElseIf CR_SoftSubDefault.SelectedItem.ToString = "Italiano (Italian)" Then
Main.DefaultSubCR = "itIT"
rk.SetValue("DefaultSubCR", "itIT", RegistryValueKind.String)
ElseIf CR_SoftSubDefault.SelectedItem.ToString = "Español (España)" Then
Main.DefaultSubCR = "esES"
rk.SetValue("DefaultSubCR", "esES", RegistryValueKind.String)
ElseIf CR_SoftSubDefault.SelectedItem.ToString = "[Disabled]" Then
Main.DefaultSubCR = "None"
rk.SetValue("DefaultSubCR", "Disabled", RegistryValueKind.String)
End If
If CR_Filename.Text = "[episode number]" Then
Main.CR_NameMethode = 0
rk.SetValue("CR_NameMethode", 0, RegistryValueKind.String)
@ -445,6 +523,24 @@ Public Class Einstellungen
End If
If FunSubDef.SelectedItem.ToString = "[Disabled]" Then
Main.DefaultSubFunimation = "Disabled"
rk.SetValue("DefaultSubFunimation", "Disabled", RegistryValueKind.String)
ElseIf FunSubDef.SelectedItem.ToString = "English" Then
Main.DefaultSubFunimation = "en"
rk.SetValue("DefaultSubFunimation", "en", RegistryValueKind.String)
ElseIf FunSubDef.SelectedItem.ToString = "Português (Brasil)" Then
Main.DefaultSubFunimation = "pt"
rk.SetValue("DefaultSubFunimation", "pt", RegistryValueKind.String)
ElseIf FunSubDef.SelectedItem.ToString = "Español (LA)" Then
Main.DefaultSubFunimation = "es"
rk.SetValue("DefaultSubFunimation", "es", RegistryValueKind.String)
End If
Main.SubFunimation.Clear()
If CB_fun_eng.Checked = True Then
Main.SubFunimation.Add("en")
@ -959,6 +1055,143 @@ Public Class Einstellungen
End Sub
Private Sub CB_fun_eng_CheckedChanged(sender As Object, e As EventArgs) Handles CB_fun_eng.CheckedChanged
If CB_fun_eng.Checked = True Then
FunSubDef.Items.Add("English")
Else
FunSubDef.Items.Remove("English")
If FunSubDef.Text = "English" Then
FunSubDef.SelectedItem = "[Disabled]"
End If
End If
End Sub
Private Sub CB_fun_es_CheckedChanged(sender As Object, e As EventArgs) Handles CB_fun_es.CheckedChanged
If CB_fun_es.Checked = True Then
FunSubDef.Items.Add("Español (LA)")
Else
FunSubDef.Items.Remove("Español (LA)")
If FunSubDef.Text = "Español (LA)" Then
FunSubDef.SelectedItem = "[Disabled]"
End If
End If
End Sub
Private Sub CB_fun_ptbr_CheckedChanged(sender As Object, e As EventArgs) Handles CB_fun_ptbr.CheckedChanged
If CB_fun_ptbr.Checked = True Then
FunSubDef.Items.Add("Português (Brasil)")
Else
FunSubDef.Items.Remove("Português (Brasil)")
If FunSubDef.Text = "Português (Brasil)" Then
FunSubDef.SelectedItem = "[Disabled]"
End If
End If
End Sub
#Region "CR_default soft sub"
Private Sub CBesES_CheckedChanged(sender As Object, e As EventArgs) Handles CBesES.CheckedChanged
If CBesES.Checked = True Then
CR_SoftSubDefault.Items.Add(CBesES.Text)
Else
CR_SoftSubDefault.Items.Remove(CBesES.Text)
If CR_SoftSubDefault.Text = CBesES.Text Then
CR_SoftSubDefault.SelectedItem = "[Disabled]"
End If
End If
End Sub
Private Sub CBitIT_CheckedChanged(sender As Object, e As EventArgs) Handles CBitIT.CheckedChanged
If CBitIT.Checked = True Then
CR_SoftSubDefault.Items.Add(CBitIT.Text)
Else
CR_SoftSubDefault.Items.Remove(CBitIT.Text)
If CR_SoftSubDefault.Text = CBitIT.Text Then
CR_SoftSubDefault.SelectedItem = "[Disabled]"
End If
End If
End Sub
Private Sub CBruRU_CheckedChanged(sender As Object, e As EventArgs) Handles CBruRU.CheckedChanged
If CBruRU.Checked = True Then
CR_SoftSubDefault.Items.Add(CBruRU.Text)
Else
CR_SoftSubDefault.Items.Remove(CBruRU.Text)
If CR_SoftSubDefault.Text = CBruRU.Text Then
CR_SoftSubDefault.SelectedItem = "[Disabled]"
End If
End If
End Sub
Private Sub CBarME_CheckedChanged(sender As Object, e As EventArgs) Handles CBarME.CheckedChanged
If CBarME.Checked = True Then
CR_SoftSubDefault.Items.Add(CBarME.Text)
Else
CR_SoftSubDefault.Items.Remove(CBarME.Text)
If CR_SoftSubDefault.Text = CBarME.Text Then
CR_SoftSubDefault.SelectedItem = "[Disabled]"
End If
End If
End Sub
Private Sub CBfrFR_CheckedChanged(sender As Object, e As EventArgs) Handles CBfrFR.CheckedChanged
If CBfrFR.Checked = True Then
CR_SoftSubDefault.Items.Add(CBfrFR.Text)
Else
CR_SoftSubDefault.Items.Remove(CBfrFR.Text)
If CR_SoftSubDefault.Text = CBfrFR.Text Then
CR_SoftSubDefault.SelectedItem = "[Disabled]"
End If
End If
End Sub
Private Sub CBesLA_CheckedChanged(sender As Object, e As EventArgs) Handles CBesLA.CheckedChanged
If CBesLA.Checked = True Then
CR_SoftSubDefault.Items.Add(CBesLA.Text)
Else
CR_SoftSubDefault.Items.Remove(CBesLA.Text)
If CR_SoftSubDefault.Text = CBesLA.Text Then
CR_SoftSubDefault.SelectedItem = "[Disabled]"
End If
End If
End Sub
Private Sub CBptBR_CheckedChanged(sender As Object, e As EventArgs) Handles CBptBR.CheckedChanged
If CBptBR.Checked = True Then
CR_SoftSubDefault.Items.Add(CBptBR.Text)
Else
CR_SoftSubDefault.Items.Remove(CBptBR.Text)
If CR_SoftSubDefault.Text = CBptBR.Text Then
CR_SoftSubDefault.SelectedItem = "[Disabled]"
End If
End If
End Sub
Private Sub CBdeDE_CheckedChanged(sender As Object, e As EventArgs) Handles CBdeDE.CheckedChanged
If CBdeDE.Checked = True Then
CR_SoftSubDefault.Items.Add(CBdeDE.Text)
Else
CR_SoftSubDefault.Items.Remove(CBdeDE.Text)
If CR_SoftSubDefault.Text = CBdeDE.Text Then
CR_SoftSubDefault.SelectedItem = "[Disabled]"
End If
End If
End Sub
Private Sub CBenUS_CheckedChanged(sender As Object, e As EventArgs) Handles CBenUS.CheckedChanged
If CBenUS.Checked = True Then
CR_SoftSubDefault.Items.Add(CBenUS.Text)
Else
CR_SoftSubDefault.Items.Remove(CBenUS.Text)
If CR_SoftSubDefault.Text = CBenUS.Text Then
CR_SoftSubDefault.SelectedItem = "[Disabled]"
End If
End If
End Sub
#End Region