OpenSUSE 12.2ã§qbittorrentãå®è¡ããŠããŠãRSSãã£ãŒããèšå®ããŠãã¬ã³ããèªåçã«ããŠã³ããŒããããã®ããã¯ã¹ãèªå®
ã®ã¡ãã£ã¢ãµãŒããŒãšããŠäœ¿çšããŸããã sshã»ãã·ã§ã³ãŸãã¯WebUIãä»ããŠã»ãšãã©ãã¹ãŠã調æŽã§ããŸãã ããã¯ã¹ã«-YãsshããŠãGUIããã«ããŠç·šéããããšãªããqbittorrentã®RSSãã£ãŒããå¶åŸ¡ã§ãããšäŸ¿å©ã§ãã çæ³çã«ã¯ãiPADã®Web UIã䜿çšããŠRSSãã£ãŒãã調æŽãããã®ã§ããããã®æ©èœãWeb UIã«è¿œå ã§ããŸããïŒ
ããããšã
jdavis3980
+1 RSSæ©èœãqbittorrent-noxã«è¿œå ããŠãXãŠã£ã³ããŠã®qBittorrentãšåçã®æ©èœãæã€ããã«ããŠãã ããã
+1
Windowsã§+1ãã
+1
+1
+1
@buinskyããªãããŠã§ãã€ã³ã¿ãŒãã§ãŒã¹ã§åããŠããã®ãèŠãŸããã ãã®æ©èœã¯äŸ¿å©ãªããã§ãã
+1
ãã®æ¬ ããŠããæ©èœã¯ãuTorrentãã移è¡ãã人ã ã«ãšã£ãŠããããååŒã®ãã¬ãŒã«ãŒã§ãã ä»ã®ãã¹ãŠã¯çŽ æŽããããããã«åªããŠããŸãã
ããããšãããããŠè¯ãä»äºãç¶ããŠãã ãã:)
+1
ãããèµ·ãã£ãŠããã®ãèŠããã§ãã
+1
+1äžèšã®æçš¿ã«ãããšãããã¯ç§ã«ãšã£ãŠååŒã®ãã¬ãŒã«ãŒã§ãã ãããèµ·ããã®ãèŠããã§ãã
+1
ãã®ãããuTorrentãããŒããŠã§ã¢ã«åºå·ããå¿
èŠããããŸã
+1ãé¡ãããŸã-ç§ãä»ãŸã§ã«èŠã€ããäžã§æé«ã®ãããã¬ã¹ã¯ã©ã€ã¢ã³ãããããŠããã¯åã«ãããå®æãããã§ãããã
+1
+1ã ããã¯éåžžã«äŸ¿å©ã§ãã
ãé¡ãããŸãïŒ +1
ãã®æ©èœãè¿œå ããŠãã ããïŒ +1
ãã®æ©èœã®+1
+1
æåããè¡æ¹äžæ
+1
ããã¯ç§ãutorrentãã移åãããŸã
+1
ç§ã¯ä»ãããªãã§ç«ã¡åŸçããŠããŸã
+1
+1
+1
ããããã®æ©èœã欲ããã§ãïŒ ãã®åŸãçŒåž¯ããå¶åŸ¡ã§ããŸã:-)ã ïŒ+1ïŒ
+1ã«ã¯ããããã¬ã¹ãµãŒããŒçšã®RSSãåããWebUIãå¿ èŠã§ãã
+1
+1
+1
+1
+1
+1
+1
+1
+1
3幎çµã£ãŠãããããã¬ã¹ããŒãžã§ã³ã§RSSãã£ãŒãããµããŒããããŠããŸãããïŒ Windowsçã¯çŽ æŽãããã§ãããããã¯ãã æ®å¿µã§ãã
ãããã誰ãã.confã®ç·šéã«é¢ãããã€ã³ã¿ãæããŠãããŸããïŒ ç§ããããå«ãã§ã¯ãããŸããããããã§ãUIãç¶ãããšãæãã§ããŸãã
ä¿åãã¹ã«ããã€ãã®ç°ãªããšã³ã³ãŒãã£ã³ã°ã䜿çšããŠãã¡ã€ã«ãç·šéããããšããŸããããæ©èœããŸããã§ããã 代ããã«flexgetã䜿çšããå¿ èŠããããŸããã
+1
+1
ã¯ããŒãºããœãŒã¹ã§æŽ»çºã«éçºãããŠããªãããã«èŠããuTorrentãµãŒããŒãã移è¡ãããã®ã§ããããããç§ãæ¢ããŠããå¯äžã®ããšã§ã
+1
+1
ããŠãæçµçã«ç§ã¯Flexgetã䜿çšããŸãããããã¯ãå¿ èŠãªæ©èœãæäŸããªããããããã¬ã¹ã§å®è¡ã§ããŸãã
ããã¯ããã°ããããªã³ã¯ã«åºã¥ããŠèªåçã«ååŸããæ©èœãé€å€ããŸãã
+1
+1
+1ïŒããã³è¿œå ããã³å®äºããæ¥ä»ã«ãã䞊ã¹æ¿ãã¯åé¡ãããŸããã§ããïŒ
åã2016幎6æ25æ¥ã«ã¯ã17:23 Rihards Skuja [email protected]
æžããŸããïŒ
+1
â
ãã®ã¹ã¬ããã«ãµãã¹ã¯ã©ã€ãããŠããããããããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -228571166ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe/AGbY-5ty-GOC3gqmyGctI5zjwX6cJMGhks5qPZw8gaJpZM4AdExq
ã
ssh X11転éã¯æ£åžžã«æ©èœããŸãããwebUIã®ãã®æ©èœã®æ¹ãã¯ããã«åªããŠããŸãã
+1ã¯ä»ã®ãšããflexgetã䜿çšããŠããŸãããRSSãqbittorrent-noxã«çµ±åãããšçŽ æŽãããã§ãããïŒ
+1
è¿œå ããã³å®äºããæ¥ä»ã«ãã䞊ã¹æ¿ãã¯åé¡ãããŸããã§ãã
ïŒ5547ã«è¿œå
+1
+1
+1
誰ããã®æ©èœããã©ãŒã¯ããããã«å®è£ ããããšããŸããã§ãããïŒ çµå±ã®ãšããããã®åºæ¬çã§æ¬åœã«å¿ èŠãªæ©èœã®å®è£ ããŸã ãªãã®ã¯æ¬åœã«å¥åŠã§ãã
ããã«+1ã ãããã¬ã¹ãã¬ã³ã/ PleXããã¯ã¹ãå®è¡ãããšãããã§å®äºã§ãã
+1
+100ïŒ
ãããç§ã«ãšã£ãŠã¯+1ã§ãã
ãããŒãqbtorrentnoxãããããµããŒãããŠããªãããšãèŠã€ããããã ãã«config / etcã§ãªã³ã«ãããã®ãªãã·ã§ã³ãæ¢ããŠ1æéãè²»ãããŸããã ããŒãã ïŒãã£ããïŒ
ä»ã®ãšããSonarrã䜿çšããŠããŸãããããã¯ããªããã«æ©èœã§ããã軜éã§çµ±åããããã®ãæ¢ããŠããŸãã
+1
+1
é©ããããšã«ãããã¯4幎çµã£ãŠããŸã è¿œå ãããŠããŸããã 誰ããrTorrentã䜿çšããŠããã®ãäžæè°ã§ã¯ãããŸããã
+1 OMGããã¯æ¬åœã«ã°ãããŠããã®ã§ãqBittorentãæ¬åœã«è¯ãbittorentã¯ã©ã€ã¢ã³ãã«ããããšãã§ããŸã
ããçš®ã®RSSé¢é£ã®WebAPIã¯ãïŒ6505ã®äžéšãšããŠå®è£ ãããå¯èœæ§ããããŸãïŒå®è£ ããå¿ èŠããããŸãïŒã
ç§ã¯WebUIã§RSSãµããŒããå®è£ ãå§ããŸããã ããããç§ãæçšããŠããæãã€è¬ã®ããããã®ä»äºãå®äºããããšã¯ã§ããŸããã
@ qbittorrent / webdev
誰ããWebUIã«RSSãµããŒããå®è£
ããã®ã«åœ¹ç«ã€ãããããŸããã ããã«ããç§ã®ã³ãŒãïŒ
+1
+1
+1
ããã«å¥ã®äººãäœå¹ŽãåŸã«+1ãè¿œå ããŸãã
+1
+1ã¯ãRSSãã£ãŒãã解æãããã®ã¬ãŒãã§èªåã§APIãçªãããã«äœããæžãããšã«ãªãã§ããã...
@buinsky ãããªãã¯ãŸã ããã«ã€ããŠããªãã®ä»äºãå®äºããããšãã§ããŸãããïŒ
@glassezæ®å¿µãªããã§ããŸããã
ç§ã¯æ¬åœã«apreciateãã®åé¡ã解決ããããšãããã@glassezã ä¿®æ£ã®å®è£ ãšãããããä¿®æ£ãè¡ãããqBittorrentã®ããŒãžã§ã³ã«ã€ããŠã倧ãŸããªã¿ã€ã ã©ã€ã³ãæããŠããã ããŸããïŒ
+1
+1
+1
+1
+1
å¿ èŠãªããšã®1ã€ããµãŒããŒã«ãªã¢ãŒãæ¥ç¶ããå¿ èŠããããšããç ©ãããã+1ããŸã... rssãå€æŽãããŸãã ããã§ãªããã°çŽ æŽãããã¯ã©ã€ã¢ã³ãïŒ
+1ã¯ããããåé¡ã§ã¯ãªãããšã«æ°ã¥ããŠããŸããã§ããã :(ééããªãããã欲ããã§ãããïŒ
ãã®æ©èœãå®è£ ããŠãã ããïŒ
æ®å¿µãªãããçŸæç¹ã§ã¯ãããžã§ã¯ãã«ã¯ã¢ã¯ãã£ããªWebéçºè ãããŸãã...
+1
qbittorrentã®ããŒã ããŒãžãèŠãŠãããããŒãªãã§ã€ã³ã¹ããŒã«ããããã«ããã«é£ã³èŸŒã¿ãŸãã
ãã®ããã¹ãã¯ãæ©èœãäžè¶³ããŠããããšã瀺ããŠããã®ã§ã¯ãªããGUIããŸã£ããåãã§ã¯ãªãããšã瀺ããŠããŸãã
SSHçµç±ã§qbittorrentã§RSSãæ©èœãããããã®ã¬ã€ãã¯ãããŸããïŒ
+1
+1ïŒ
ãªãããããŸã ãªãã®ã§ããïŒ
ãããæ°ã«ãã人ã¯ãŸã å®è£ ããŠããªãããã§ãã ãã«ãªã¯ãšã¹ãã¯å€§æè¿ã ãšæããŸãã
人ã ãåŸ ã£ãŠããéãLinux3.3_alphaçšã®utorrentãµãŒããŒã«ã¯webUIã«rssã³ã³ããŒãã³ããããããšãææããããšæããŸã
ã³ãã¥ããã£0.83webuiã§ã¯ãã«æ©èœã§ãïŒã¹ããã¯webuiã«ã¯ããã€ãã®ç¹ãæ¬ ããŠããŸãïŒ
é©åãªWebAPIã¯çŸåšéçºäžã§ãã 4.0.xãã©ã³ãã®æåã®ã¢ããããŒãã§ãªãªãŒã¹ãããããšãé¡ã£ãŠããŸãã
ãã®ããã®WebUIã«ã€ããŠã¯ãã¢ã¯ãã£ããªWebéçºè
ãããªãããããªãªãŒã¹ãã¹ã±ãžã¥ãŒã«ã§ããŸããã
Rockstor NASã«ç§»åãããšãããRSSæ§æãweb-uiããã€ã³ããŒãã§ããªãããšã«æ°ä»ããŸããã çã...
+1ïŒ Netgear NASãè³Œå ¥ããã°ããã§ããã®æ©èœã¯web-uiããŒãžã§ã³ã§æ¬åœã«å¿ èŠã§ãïŒ
+1
+1
+1
+1
åé¿çãå¿
èŠãªå Žåãããã¯äžçš®ã®è§£æ±ºçã§ãã
https://askubuntu.com/questions/498232/using-rss-in-qbittorrent
+1
qBittorrentv4.1ã«ã¯å®éšçãªRSS管çAPIããããŸãã ãã¡ããã芧ãã ããã
ããããµããŒããããã®ã¯ããã«ããããŸããïŒ qbittorentããµãŒãã¹ãšããŠå®è¡ããŠããŸãã RSSããŠã³ããŒãã管çããããã«ããµãŒãã¹ãã·ã£ããããŠã³ããŠãã¹ã¯ãããã§éå§ããå¿ èŠãããã®ã¯æ¬åœã«é¢åã§ã
ããããµããŒããããã®ã¯ããã«ããããŸããïŒ
ç§ã®åã®ã³ã¡ã³ãã«æ°ã¥ããªãã£ãã®ã§ããïŒ ãããšãWebUIã®ããšã§ããïŒ
ç§ã¯ãŠã§ãUIãæå³ããŸãããChromeçšã®ã¿ã³ããŒã¢ã³ããŒã䜿çšããŠããã®ãã¥ãŒãæ¿å ¥ããããšã«åãçµãã§ããŸãããã°ãããåŸ ã¡ãã ãã
ã€ãŸããChromeçšã®Tampermonkeyãå¿ èŠã§ãã ãã®éåžžã«ãã¹ããããŠããªãããããããªãã®ã«ãŒã«ãŸãã¯åæ§ã®ãã®ãäžæžãããŠãç§ã責ããªãã§ãã ããã
// ==UserScript==
// <strong i="6">@name</strong> qbittorrent rss
// <strong i="7">@namespace</strong> http://tampermonkey.net/
// <strong i="8">@version</strong> 0.1
// <strong i="9">@description</strong> Adds rss rule window to qBittorent web UI
// <strong i="10">@author</strong> Anders Malmgren
// <strong i="11">@match</strong> http://localhost:8080
// <strong i="12">@grant</strong> none
// <strong i="13">@require</strong> http://knockoutjs.com/downloads/knockout-3.4.2.js
// <strong i="14">@require</strong> http://andersmalmgren.github.io/Knockout.BindingConventions/src/Knockout.BindingConventions.js
// ==/UserScript==
(function() {
var modalTemplate = '<div>\
<select data-name="rules"></select>\
<button data-name="addRule">Add</button>\
<button data-name="deleteSelectedRule">Delete</button>\
<div data-name="selectedRule">\
<div><label><input data-name="enabled"/>Enabled</label></div>\
<div><label>Name</label><input data-name="name" /></div>\
<div><label>Must contain</label><input data-name="mustContain" /></div>\
<div><label>Must NOT contain</label><input data-name="mustNotContain" /></div>\
<div><label>Save path</label><input data-name="savePath" /></div>\
<label>Feeds</label>\
<div data-name="feeds">\
<div><label><input data-name="enabled"/><span data-name="name"></span></label></div>\
</div>\
<button data-name="save">Save</button>\
</div>\
</div>'
var button = new Element("a", { html: "RSS<div data-name='modal' data-bind='modal: modal'>" + modalTemplate + "</div>"});
button.setAttribute("data-bind", "click: showRss");
var feeds = null;
new Request.JSON({
url: new URI('api/v2/rss/items'),
noCache: true,
method: 'get',
onFailure: function() {
//TODO: error handling
},
onSuccess: function(response) {
feeds = Object.keys(response).map(function(key) { return { name: key, url: response[key] != "" ? response[key] : key }; })
}
}).send();
$("mochaToolbar").append(button);
var Model = function() {
this.modal = ko.observable().extend({notify: 'always'});;
this.modal.subscribe(function(value) { console.log(value);});
};
Model.prototype = {
showRss: function() {
if(this.modal() == null) {
this.modal(new RssModel());
}
}
};
var RssModel = function() {
this.rules = ko.observableArray();
this.selectedRule = ko.observable();
this.listRules();
this.canDeleteSelectedRule = ko.computed(function() { return this.selectedRule() != null }, this);
};
RssModel.prototype = {
listRules: function() {
var url = new URI('api/v2/rss/rules');
var request = new Request.JSON({
url: url,
noCache: true,
method: 'get',
onFailure: function() {
//TODO: error handling
},
onSuccess: function(response) {
this.rules(Object.keys(response).map(function(key) { return new Rule(key, response[key]); }));
}.bind(this)
}).send();
},
addRule: function() {
this.rules.push(new Rule("Untitled", { enabled: false, mustContain: "", mustNotContain: "", savePath: "", affectedFeeds: []}));
},
deleteSelectedRule: function() {
var rule = this.selectedRule();
var url = new URI('api/v2/rss/removeRule');
url.setData('ruleName', rule.name());
new Request.JSON({
url: url,
noCache: true,
method: 'get',
onFailure: function(response) {
//Unpexted behaviour, eror with status 200 trigger, why?
if(response.status !== 200) {
throw "Error deleting rule";
}
this.rules.remove(rule);
}.bind(this)
}).send();
}
};
var Rule = function(name, data) {
this.name = ko.observable(name);
this.enabled = data.enabled;
this.mustContain = data.mustContain;
this.mustNotContain = data.mustNotContain;
this.savePath = data.savePath;
this.feeds = feeds.map(function(f) { return new Feed(f, data.affectedFeeds.indexOf(f.url) >= 0)});
this.data = data;
this.canSave = ko.observable(true);
};
Rule.prototype = {
save: function() {
var toSave = Object.assign({}, this.data);
for (var key in toSave) {
if (this.hasOwnProperty(key)) {
toSave[key] = ko.utils.unwrapObservable(this[key]);
}
}
toSave.affectedFeeds = this.feeds.filter(function(f) { return f.enabled; }).map(function(f) { return f.url; });
var json = ko.toJSON(toSave);
var dirty = ko.toJSON(this.data) !== json;
if(!dirty) return;
var url = new URI('api/v2/rss/setRule');
url.setData('ruleName', this.name());
url.setData("ruleDef", json);
this.canSave(false);
var request = new Request.JSON({
url: url,
noCache: true,
method: 'get',
onFailure: function(response) {
//Unpexted behaviour, eror with status 200 trigger, why?
if(response.status !== 200) {
throw "Error saving rule";
}
this.data = toSave;
this.canSave(true);
}.bind(this)
}).send();
}
};
var Feed = function(data, enabled) {
this.name = data.name;
this.url = data.url;
this.enabled = enabled;
};
var orgOptionsApply = ko.bindingConventions.conventionBinders.options.apply;
ko.bindingConventions.conventionBinders.options.apply = function(name, element, bindings, options, type, data, viewModel) {
orgOptionsApply(name, element, bindings, options, type, data, viewModel)
if (options.length === 0 || options[0]["name"]) {
bindings.optionsText = function() { return "name"; };
}
};
ko.bindingHandlers.modal = {
init: function(element, valueAccessor) {
valueAccessor().subscribe(function(value) {
if(value) {
setTimeout(function () {
new MochaUI.Window({
title: "RSS auto download",
content: element,
storeOnClose: true,
addClass: 'windowFrame', // fixes iframe scrolling on iOS Safari
scrollbars: true,
maximizable: false,
closable: true,
paddingVertical: 0,
paddingHorizontal: 0,
onClose: function() {
valueAccessor()(null);
}
});
}, 0);
}
});
}
}
ko.applyBindings(new Model(), button)
})();
ç¹å®ã®affectedFeedsURLã§setRuleãåŒã³åºããšãqbitTorrentãæ··ä¹±ããããã§ãã圱é¿ãåãããã£ãŒãã¯ã«ãŒã«ã«ä¿åãããŸããããŸããä¿åããªãããšãéžæããå Žåã§ããã«ãŒã«ãæå¹ã«ãªããŸãã
URLïŒç·šéãããæ¹æ³ã®å人ããŒã¿ïŒ
" https://xxx.org/rss/feed?passkey=xxxx&feed=dl&type_origin=1&cats [] = 1c1c3ïŒcats [] = 1c1c6ïŒcats [] = 2c1c3ïŒcats [] = 2c1c6"
äžèšã®ã¹ã¯ãªãããæŽæ°ããŠãçŸåšã®APIã®äºæããªãåäœ/ãã°ãèæ
®ããŸããã
ãŸãããã£ãŒããã¬ã³ããšããªãã§ãã ãããååãURLãšåæãããŠãã ããã
ããã«ã¡ã¯ïŒ ãŸããã¹ã¯ãªãããæäŸããŠãããAndersã«æè¬ããŸãã ããããç§ã¯ãããè©ŠããŸãããããããã¡ãã¥ãŒã«ãªã¬ã³ãžè²ã®ãRSSããã衚瀺ãããªãããïŒã¹ã¯ãªãŒã³ãã£ããã£ãåç §ïŒãäœãééã£ãããšãããå¯èœæ§ããããŸããã¯ãªãã¯ãããšããã®ãããã¢ãããŠã£ã³ããŠã衚瀺ãããå®éã«ã¯äœãã§ããŸããã ...äœãã©ãã§èŠãããšã«ãªã£ãŠããŸããïŒ ä»ã«äœãèŠã€ãããŸããã§ããã ïŒãšããã§ã[è¿œå ]ãã¯ãªãã¯ããŠãäœãèµ·ããããããããããŠã³ã¡ãã¥ãŒã¯ç©ºã§ç·šéã§ããŸããïŒ
åãã£ãŠæè¬ããŸãïŒ
ããã«ã¡ã¯@jadazulããããšãã
次ã®ããã«ãªããŸãã
v4.1.1 WebUIã«å¯ŸããŠãã¹ãæžã¿
ã«ãŒã«ã®å¯äžã®UIã§ãããã£ãŒããæ©èœãããã«ã¯ããã£ãŒããå®çŸ©ããå¿ èŠãããå ŽåããããŸãã RSSãã£ãŒãã¯ãããã«ãŒã«ããªãå Žåã¯ã[è¿œå ]ãæŒãå¿ èŠãããããã£ãŒã«ãã«å ¥åã§ããŸãã 4.1.1ã«ã¯ãã°ããããããäžèšã®æçš¿ã®äŸã®ããã«é·ãURLãã£ãŒããå«ãã«ãŒã«ãä¿åããããšã¯ã§ããŸããã
4.1.1ã«ã¯ãã°ããããããäžèšã®æçš¿ã®äŸã®ããã«é·ãURLãã£ãŒããå«ãã«ãŒã«ãä¿åããããšã¯ã§ããŸããã
ã¹ã¯ãªããã¯ãqBittorrentã§ãã£ãŒããè¿œå ãããšãã«äœ¿çšããã®ãšåã圢åŒã§ãã£ãŒãURLãéä¿¡ããŸããïŒ
@glassez
ããè¿ãããURLã䜿çšããŸã
api / v2 / rss / items
ããäžåºŠããããšã@AndersMalmgren
ãããã¬ã¹UbuntuãµãŒããŒã«qBittorrent-noxãã€ã³ã¹ããŒã«ããã®ã§ãåäžã®RSSãã£ãŒããè¿œå ããæ¹æ³ãèŠã€ãããŸããã§ãã... APIã®Wikiãèªã¿ãŸãããããã®æ¹æ³ã®äŸã¯å€ããããŸãã... sshã¿ãŒããã«ã§curlã䜿çšããŠããã°ã€ã³ããŠCookieãååŸããããšããŸãããã/ api / v2ã䜿çšããŠããŸãããããã¯æ©èœãããæ¯å404ãšã©ãŒãçºçãããã®æ¹æ³ã®äŸãèŠã€ãããŸããã§ãããé©åã«è¡ãã®ã§ãç§ã¯ãããããŠã¹ã¯ãªãããè©ŠããŸããïŒããããä»ã§ã¯æ¢åã®ãã£ãŒãã管çããã ãã ãšç解ããŠããŸãïŒã
ã¹ã¯ãªããã䜿çšããŠåŸã§ç®¡çã§ããããã«ãã£ãŒããè¿œå ããæ¹æ³ã¯ãããŸããïŒ ããã€ãã®èšå®ãã¡ã€ã«ãæåã§å€æŽããŠããå Žåã§ãããããè¡ãæ¹æ³ãèŠã€ããå¿ èŠããããŸã...
å床ãæè¬ããŸãïŒ
åŸã§èª¿ã¹ãããšãã§ããŸããæ¢åã®ãã£ãŒãã«ã«ãŒã«ãè¿œå ãããŠãŒã¹ã±ãŒã¹ããµããŒãããããã«äœæããŸããã
ç·šéïŒã³ã³ãœãŒã«ã«ãšã©ãŒããªãã確èªããŸããã
ç³ãèš³ãããŸããããããã確èªãããšãã«ç·šéå 容ã衚瀺ãããŸããã
curlãè©ŠããŠã¿ããã³ã«ã404ãšã©ãŒãçºçãã詳现ã¯ããŸã衚瀺ãããŸãã...
4.1.1ã䜿çšããŠããŸããïŒ RSSAPIã¯4.1ã§è¿œå ãããŸãã
ã¯ããqBittorrent-noxv4.1.1ããããã¬ã¹UbuntuãµãŒããŒ18.04ã«ã€ã³ã¹ããŒã«ããŸãã
ç·šéïŒãããã¹ã¯ã©ããããæ€èšŒããã°ããã§ãæåŸã®ããŒãžã§ã³ããããšæã£ãŠããŠãïŒUbuntuã®apt-getã䜿çšãããããæåŸã®ããŒãžã§ã³ã ãšæã£ãŠããŸããïŒã代ããã«v4.0.3ãã€ã³ã¹ããŒã«ããŸãã...ããã«ææ°ããŒãžã§ã³ãã€ã³ã¹ããŒã«ããŠã¿ãŸãã ãšã«ããããªãã®å©ããããããšãïŒ
setRuleã¯4.1.2ã§ããŸã æ©èœããŠããŸãã
+1
setRuleã¯4.1.3ã§ããŸã æ©èœããŸãããããã¯ç§ãäœæãããããªã§ãããã£ãŒãã®URLãèšå®ããããšãããšããã¹ãŠãããŸããããªãããšãããããŸãã
@AndersMalmgrenã¯ãAlt WebUI https://github.com/qbittorrent/qBittorrent/wiki/Alternate-WebUI-usageãä»ããŠTampermonkeyã䜿çšãã代ããã«ãwebuiæ¹åãµãŒããŒåŽãæ¿å ¥ã§ããããšãèŠããŠããŸã
setRuleã¯4.1.3ã§ããŸã æ©èœããŸãããããã¯ç§ãäœæãããããªã§ãããã£ãŒãã®URLãèšå®ããããšãããšããã¹ãŠãããŸããããªãããšãããããŸãã
ãããã³ã«ãå€æŽãããŸããã å°ãåã«å€æŽããã®ã§ãã©ããæ£ç¢ºã«èŠããŠããŸããã ãã§ãã¯ããŠãã ããã
`
// ==UserScript==
// <strong i="11">@name</strong> qbittorrent rss
// <strong i="12">@namespace</strong> http://tampermonkey.net/
// <strong i="13">@version</strong> 0.1
// <strong i="14">@description</strong> Adds rss rule window to qBittorent web UI
// <strong i="15">@author</strong> Anders Malmgren
// <strong i="16">@match</strong>
// <strong i="17">@grant</strong> none
// <strong i="18">@require</strong> http://knockoutjs.com/downloads/knockout-3.4.2.js
// <strong i="19">@require</strong> http://andersmalmgren.github.io/Knockout.BindingConventions/src/Knockout.BindingConventions.js
// ==/UserScript==
(function() {
var modalTemplate = '<div>\
<select data-name="rules"></select>\
<button data-name="addRule">Add</button>\
<button data-name="deleteSelectedRule">Delete</button>\
<div data-name="selectedRule">\
<div><label><input data-name="enabled"/>Enabled</label></div>\
<div><label>Name</label><input data-name="name" /></div>\
<div><label>Must contain</label><input data-name="mustContain" /></div>\
<div><label>Must NOT contain</label><input data-name="mustNotContain" /></div>\
<div><label>Assigned Category</label><input data-name="assignedCategory" /></div>\
<div><label>Save path</label><input data-name="savePath" /></div>\
<label>Feeds</label>\
<div data-name="feeds">\
<div><label><input data-name="enabled"/><span data-name="name"></span></label></div>\
</div>\
<button data-name="save">Save</button>\
</div>\
</div>'
var button = new Element("a", { html: "RSS<div data-name='modal' data-bind='modal: modal'>" + modalTemplate + "</div>"});
button.setAttribute("data-bind", "click: showRss");
var feeds = null;
new Request.JSON({
url: new URI('api/v2/rss/items'),
noCache: true,
method: 'get',
onFailure: function() {
//TODO: error handling
},
onSuccess: function(response) {
feeds = Object.keys(response).map(function(key) { return { name: key, url: response[key] != "" ? response[key]["url"] : key }; })
}
}).send();
$("mochaToolbar").append(button);
var Model = function() {
this.modal = ko.observable().extend({notify: 'always'});;
this.modal.subscribe(function(value) { console.log(value);});
};
Model.prototype = {
showRss: function() {
if(this.modal() == null) {
this.modal(new RssModel());
}
}
};
var RssModel = function() {
this.rules = ko.observableArray();
this.selectedRule = ko.observable();
this.listRules();
this.canDeleteSelectedRule = ko.computed(function() { return this.selectedRule() != null }, this);
};
RssModel.prototype = {
listRules: function() {
var url = new URI('api/v2/rss/rules');
var request = new Request.JSON({
url: url,
noCache: true,
method: 'get',
onFailure: function() {
//TODO: error handling
},
onSuccess: function(response) {
this.rules(Object.keys(response).map(function(key) { return new Rule(key, response[key]); }));
}.bind(this)
}).send();
},
addRule: function() {
this.rules.push(new Rule("Untitled", { enabled: false, mustContain: "", mustNotContain: "",assignedCategory: "", savePath: "", affectedFeeds: []}));
},
deleteSelectedRule: function() {
var rule = this.selectedRule();
var url = new URI('api/v2/rss/removeRule');
url.setData('ruleName', rule.name());
new Request.JSON({
url: url,
noCache: true,
method: 'get',
onFailure: function(response) {
//Unpexted behaviour, eror with status 200 trigger, why?
if(response.status !== 200) {
throw "Error deleting rule";
}
this.rules.remove(rule);
}.bind(this)
}).send();
}
};
var Rule = function(name, data) {
this.name = ko.observable(name);
this.enabled = data.enabled;
this.mustContain = data.mustContain;
this.assignedCategory = data.assignedCategory;
this.mustNotContain = data.mustNotContain;
this.savePath = data.savePath;
this.feeds = feeds.map(function(f) { return new Feed(f, data.affectedFeeds.indexOf(f.url) >= 0)});
this.data = data;
this.canSave = ko.observable(true);
};
Rule.prototype = {
save: function() {
var toSave = Object.assign({}, this.data);
for (var key in toSave) {
if (this.hasOwnProperty(key)) {
toSave[key] = ko.utils.unwrapObservable(this[key]);
}
}
toSave.affectedFeeds = this.feeds.filter(function(f) { return f.enabled; }).map(function(f) { return f.url; });
var json = ko.toJSON(toSave);
var dirty = ko.toJSON(this.data) !== json;
if(!dirty) return;
var url = new URI('api/v2/rss/setRule');
url.setData('ruleName', this.name());
url.setData("ruleDef", json);
this.canSave(false);
var request = new Request.JSON({
url: url,
noCache: true,
method: 'get',
onFailure: function(response) {
//Unpexted behaviour, eror with status 200 trigger, why?
if(response.status !== 200) {
throw "Error saving rule";
}
this.data = toSave;
this.canSave(true);
}.bind(this)
}).send();
}
};
var Feed = function(data, enabled) {
this.name = data.name;
this.url = data.url;
this.enabled = enabled;
};
var orgOptionsApply = ko.bindingConventions.conventionBinders.options.apply;
ko.bindingConventions.conventionBinders.options.apply = function(name, element, bindings, options, type, data, viewModel) {
orgOptionsApply(name, element, bindings, options, type, data, viewModel)
if (options.length === 0 || options[0]["name"]) {
bindings.optionsText = function() { return "name"; };
}
};
ko.bindingHandlers.modal = {
init: function(element, valueAccessor) {
valueAccessor().subscribe(function(value) {
if(value) {
setTimeout(function () {
new MochaUI.Window({
title: "RSS auto download",
content: element,
storeOnClose: true,
addClass: 'windowFrame', // fixes iframe scrolling on iOS Safari
scrollbars: true,
maximizable: false,
closable: true,
paddingVertical: 0,
paddingHorizontal: 0,
onClose: function() {
valueAccessor()(null);
}
});
}, 0);
}
});
}
}
ko.applyBindings(new Model(), button)
})();
`
@ rqi14äžèšã§æçš¿ããã³ãŒãã«å€æŽãå ããŸãããïŒ
å°ãåã«äœãå€æŽãå ããã®ã§ãããæ£ããèŠããŠããã°URLããªã¹ãããã圢åŒã§ããããsetRulesã¯ãŸã URLæååã®é åãåããŸãã
@ rqi14äžèšã§æçš¿ããã³ãŒãã«å€æŽãå ããŸãããïŒ
å°ãåã«äœãå€æŽãå ããã®ã§ãããæ£ããèŠããŠããã°URLããªã¹ãããã圢åŒã§ããããsetRulesã¯ãŸã URLæååã®é åãåããŸãã
ã¯ããããŸããã ç§ãèšã£ãããã«ç§ãã©ããªä¿®æ£ããããèŠããŠããŸããã ããããçŸåšã¯æ©èœããŠããŸãã
@ rqi14æ¯èŒããŒã«ã§2ã€ã®ããŒãžã§ã³ãæ¯èŒããŸããããå€æŽã¯ãã§ã«è¡ã£ãŠããŸãã api / v2 / rss / itemsããè¿ããããã£ãŒãURLã®åœ¢åŒãå€æŽãããŸãã
VNCãšéåžžã®GUIã䜿çšããå ŽåããŸãã¯GUIãå®è¡ããŠãããã·ã³ããRSSãã£ãŒãã®ã»ããã¢ããã䜿çšããŠèšå®ãã³ããŒããå Žåãqbittorrentãåæ¢ããŠqbittorrent-noxãéå§ãããšããããååŸãããŸããïŒ èšãæããã°ãGUIã ããæ¬ èœããŠããã®ãããããšãæ©èœã»ããå šäœãæ¬ èœããŠããã®ãã
ããã§ããããæ£ããç解ããŠããã°ãRSSãã£ãŒããèªåã§è¿œå ããå¿ èŠããããããã¯webuiã«è¿œå ãããŸãããïŒ
VNCãšéåžžã®GUIã䜿çšããå ŽåããŸãã¯GUIãå®è¡ããŠãããã·ã³ããRSSãã£ãŒãã®ã»ããã¢ããã䜿çšããŠèšå®ãã³ããŒããå Žåãqbittorrentãåæ¢ããŠqbittorrent-noxãéå§ãããšããããååŸãããŸããïŒ èšãæããã°ãGUIã ããæ¬ èœããŠããã®ãããããšãæ©èœã»ããå šäœãæ¬ èœããŠããã®ãã
ã©ããããGUIã ããæ¬ èœããŠããŠãåŸ ã£ãŠãããã¬ã³ããå ¬éãããåã«ãã¹ãã®ããã«-noxã«åãæ¿ããŠãæ£åžžã«èªåããŠã³ããŒããããŸããã
GUIã®è¿œå ããã€å¯Ÿè±¡ãšãªããã«ã€ããŠäœãèãã¯ãããŸããïŒ
ããã¿ããªããããç§ã®rssã«ãŒã«UIã®ææ°ããŒãžã§ã³ã§ãã
ããŒã¿ãå€æŽãããã¹ãŠã®ãªã¯ãšã¹ãã«æçš¿ã䜿çšããããã«ãªããŸããã ããŒãã¹ãšããŠããã¹ãŠã®ãã£ãŒãURLã§æ©èœããŸãïŒqbittorrentãçŸåšgetãªã¯ãšã¹ãããã®ãã¹ã解æããæ¹æ³ã®ãã°ã§ãïŒã
ãã®UIã¯çŸåšã«ãŒã«ã®ã¿ããµããŒãããŠããããã£ãŒããªã©ãè¿œå ããããšã¯ã§ããŸããããã ããèªåã§èªç±ã«è¿œå ããŠãã ããã
// ==UserScript==
// <strong i="8">@name</strong> qbittorrent rss
// <strong i="9">@namespace</strong> http://tampermonkey.net/
// <strong i="10">@version</strong> 0.1
// <strong i="11">@description</strong> Adds rss rule window to qBittorent web UI
// <strong i="12">@author</strong> Anders Malmgren
// <strong i="13">@match</strong> http://winserver:8080
// <strong i="14">@match</strong> http://localhost:8080/
// <strong i="15">@grant</strong> none
// <strong i="16">@require</strong> http://knockoutjs.com/downloads/knockout-3.4.2.js
// <strong i="17">@require</strong> http://andersmalmgren.github.io/Knockout.BindingConventions/src/Knockout.BindingConventions.js
// ==/UserScript==
(function() {
var modalTemplate = '<div>\
<select data-name="rules"></select>\
<button data-name="addRule">Add</button>\
<button data-name="deleteSelectedRule">Delete</button>\
<div data-name="selectedRule">\
<div><label><input data-name="enabled"/>Enabled</label></div>\
<div><label>Name</label><input data-name="name" /></div>\
<div><label>Must contain</label><input data-name="mustContain" /></div>\
<div><label>Must NOT contain</label><input data-name="mustNotContain" /></div>\
<div><label>Save path</label><input data-name="savePath" /></div>\
<label>Feeds</label>\
<div data-name="feeds">\
<div><label><input data-name="enabled"/><span data-name="name"></span></label></div>\
</div>\
<button data-name="save">Save</button>\
</div>\
</div>'
var button = new Element("a", { html: "RSS<div data-name='modal' data-bind='modal: modal'>" + modalTemplate + "</div>"});
button.setAttribute("data-bind", "click: showRss");
var feeds = null;
new Request.JSON({
url: new URI('api/v2/rss/items'),
noCache: true,
method: 'get',
onFailure: function() {
//TODO: error handling
},
onSuccess: function(response) {
feeds = Object.keys(response).map(function(key) { return { name: key, url: response[key] != "" ? response[key] : key }; })
}
}).send();
$("mochaToolbar").append(button);
var Model = function() {
this.modal = ko.observable().extend({notify: 'always'});;
this.modal.subscribe(function(value) { console.log(value);});
};
Model.prototype = {
showRss: function() {
if(this.modal() == null) {
this.modal(new RssModel());
}
}
};
var RssModel = function() {
this.rules = ko.observableArray();
this.selectedRule = ko.observable();
this.listRules();
this.canDeleteSelectedRule = ko.computed(function() { return this.selectedRule() != null }, this);
};
RssModel.prototype = {
listRules: function() {
var url = new URI('api/v2/rss/rules');
var request = new Request.JSON({
url: url,
noCache: true,
method: 'get',
onFailure: function() {
//TODO: error handling
},
onSuccess: function(response) {
this.rules(Object.keys(response).map(function(key) { return new Rule(key, response[key]); }));
}.bind(this)
}).send();
},
addRule: function() {
this.rules.push(new Rule("Untitled", { enabled: false, mustContain: "", mustNotContain: "", savePath: "", affectedFeeds: []}));
},
deleteSelectedRule: function() {
var rule = this.selectedRule();
var url = new URI('api/v2/rss/removeRule');
new Request.JSON({
url: url,
noCache: true,
method: 'post',
data: { ruleName: rule.name() },
onFailure: function(response) {
//Unpexted behaviour, eror with status 200 trigger, why?
if(response.status !== 200) {
throw "Error deleting rule";
}
this.rules.remove(rule);
}.bind(this)
}).send();
}
};
var Rule = function(name, data) {
this.name = ko.observable(name);
this.enabled = data.enabled;
this.mustContain = data.mustContain;
this.mustNotContain = data.mustNotContain;
this.savePath = data.savePath;
this.feeds = feeds.map(function(f) { return new Feed(f, data.affectedFeeds.indexOf(f.url.url) >= 0)});
this.data = data;
this.canSave = ko.observable(true);
};
Rule.prototype = {
save: function() {
var toSave = Object.assign({}, this.data);
for (var key in toSave) {
if (this.hasOwnProperty(key)) {
toSave[key] = ko.utils.unwrapObservable(this[key]);
}
}
toSave.affectedFeeds = this.feeds.filter(function(f) { return f.enabled; }).map(function(f) { return f.url; });
var json = ko.toJSON(toSave);
var dirty = ko.toJSON(this.data) !== json;
if(!dirty) return;
var url = new URI('api/v2/rss/setRule');
this.canSave(false);
var request = new Request.JSON({
url: url,
noCache: true,
method: 'post',
data: { ruleName: this.name(), ruleDef: json },
onFailure: function(response) {
//Unpexted behaviour, eror with status 200 trigger, why?
if(response.status !== 200) {
throw "Error saving rule";
}
this.data = toSave;
this.canSave(true);
}.bind(this)
}).send();
}
};
var Feed = function(data, enabled) {
this.name = data.name;
this.url = data.url.url;
this.id = data.url.uid;
this.enabled = enabled;
};
var orgOptionsApply = ko.bindingConventions.conventionBinders.options.apply;
ko.bindingConventions.conventionBinders.options.apply = function(name, element, bindings, options, type, data, viewModel) {
orgOptionsApply(name, element, bindings, options, type, data, viewModel)
if (options.length === 0 || options[0]["name"]) {
bindings.optionsText = function() { return "name"; };
}
};
ko.bindingHandlers.modal = {
init: function(element, valueAccessor) {
valueAccessor().subscribe(function(value) {
if(value) {
setTimeout(function () {
new MochaUI.Window({
title: "RSS auto download",
content: element,
storeOnClose: true,
addClass: 'windowFrame', // fixes iframe scrolling on iOS Safari
scrollbars: true,
maximizable: false,
closable: true,
paddingVertical: 0,
paddingHorizontal: 0,
onClose: function() {
valueAccessor()(null);
}
});
}, 0);
}
});
}
}
ko.applyBindings(new Model(), button)
})();
ã¿ããªãqbittorrentããã©ãŒã¯ããŸããã ããã§ãå¥ã®webuiã¡ãœããã䜿çšããŠRSSã«ãŒã«UIãè¿œå ã§ããŸãã ãããç§ã®ã¬ãã§ã
https://github.com/AndersMalmgren/qBittorrent
代æ¿UIã®æé
https://github.com/qbittorrent/qBittorrent/wiki/Alternate-WebUI-usage
@AndersMalmgrenãã®å€æŽã®PRãéããŠã¿ãŸãããïŒ
@Piccirelloããã€ãã®çç±ã§ãæåã«KnockoutãšåŒã°ããMVVMãšã³ãžã³ã䜿çšããŸãããã³ã¢ããŒã ãå¥ã®ãšã³ãžã³ãããã¯ã¹ã«è¿œå ããããã©ããã¯
ä»æ¥ã¯ããã®githubã§ã®ãã®æ©èœãªã¯ãšã¹ãã®5åšå¹Žã§ãã
RSSãšwebuiã®ããŒã ã®å°æ¥ã®èšç»ã«ã€ããŠãã£ãŒãããã¯ãåŸãããšãã§ããŸããïŒ
RSSãšwebuiã®ããŒã ã®å°æ¥ã®èšç»ã«ã€ããŠãã£ãŒãããã¯ãåŸãããšãã§ããŸããïŒ
ãã®5幎éããã£ãŒãããã¯ã¯å€æŽãããŠããŸããã è²¢ç®ãããWebéçºè ãããã°ããã«å®è£ ãããŸãã
ãã®éãç§ã®ä»£æ¿UIãä»äºãããŸã:)
ç§ã¯Webéçºè ã§ãããããã«åãçµãã§ãããŸãïŒç§ã¯ãã®æ©èœãèªåã§éåžžã«æãã§ããŸãïŒã ç§ã¯ã³ãŒãããŒã¹ã«ãŸã£ãã粟éããŠããªãã®ã§ããã€/å®éã«ãããå®äºããããšãã§ãããã©ããã¯æ¬åœã«ããããŸããã
@alexiooo RSS Web APIã¡ãœããã«é¢ããŠã¯ãç§ã®ãã©ã³ãã§ãããã®äœ¿çšæ¹æ³ã確èªã§ããŸãã
@ alexiooo ã
+1
@Piccirello @glassez @ngosang @buinsky
ããã¯é·æã«ãããéåžžã«äººæ°ã®ãããªã¯ãšã¹ãã®ããã§ããããã€ã«ã¹ããŒã³ã«è¿œå ããããšã¯å¯èœã§ããããã
ããããšã
ä»ã¯ãããåãå ¥ããæéããããŸããã ç§ã¯ãæ¢åã®PRã«é¢ããã³ã¡ã³ãã«åãçµãæ©äŒãããããŸããã§ããã
åé¡ã®äºå®ã¯ãWebéçºè ã1人ãããªããšããããšã§ãã ãããå®çŸããã«ã¯ãã³ãã¥ããã£ããã®ãããªããµããŒããå¿ èŠã§ãã
@alexiooo @glassezãè¿°ã¹ãããã«ãwebui / webapiã¢ãŒããã¯ãã£ãŸãã¯qBittorrentã®ã³ãŒãããŒã¹ã«ã€ããŠè³ªåãããå Žåã¯ãé æ ®ãªãé£çµ¡ããŠãã ããã RSSã®çµéšã¯ãããŸããã
@Piccirelloãã©ãŠã¶ã®äºææ§ã«é¢ããã¬ã€ãã©ã€ã³ã¯ãããŸããïŒ ããã€ãã®ES6æ©èœãç¹ã«ã¯ã©ã¹ïŒ https://caniuse.com/#feat = es6-classïŒã䜿çšããã
ããã¯ç§ãã¡ããã°ããã®é決å®ããå¿ èŠããã£ããã®ã§ãã ãã®ãããã¯ã«ã€ããŠä»ã®åé¡/åºå ±ã§è°è«ããããšã¯ç¥ã£ãŠããŸãããã©ãã«ããã®ãæãåºããŸããã
äžæ¹ã§ã¯ãES6ã¯ã©ã¹ããå¿ èŠãªãã¹ãŠãéæããå¯èœæ§ãé«ãã¢ã«ã¯ã©ã¹ããããŸãã äžæ¹ãES6ã¯ã©ã¹ã¯ãIE11ãé€ãããŠãŒã¶ãŒã䜿çšããå¯èœæ§ã®ãããã¹ãŠã®ãã©ãŠã¶ãŒã§ãµããŒããããŠããŸãã ç§ã¯æ¬¡ã®äººãšåããããIE11ãå«ãã§ãããæ£åœãªçç±ãªãã«ãµããŒãããããããããŸããã æ¬åœã®åé¡ã¯ããŠãŒã¶ãŒã䜿çšããŠãããã©ãŠã¶ãŒãç¥ãããã®ã¡ããªãã¯ããªãããšã§ãã
ç·šéïŒç§ã¯@ Chocobo1ãããã®æçš¿ãèŠã€ããŸãããããã¯ç§ã倧äœåæããŸãã
IE11ã䜿çšããŠãã人ã¯ããŸãããªããšæããŸãããMicrosoftã§ã䜿çšããªããšèšã£ãŠããŸãhttps://techcommunity.microsoft.com/t5/Windows-IT-Pro-Blog/The-perils-of-using-Internet-Explorer- as-your-default-browser / ba-p / 331732
èšå®ã§æå¹ã«ã§ãããªããã€ã³ã¡ããªãã¯ãå®è¡ãããã®ãããªãã®ã®å¿åçµ±èšãèšé²ããããšã¯å¯èœã§ããããïŒ
ããã¯å ¬æ£ãªç¹ã§ãã ãœãŒã¹ã«ããããŸãããIEã¯äŸç¶ãšããŠãã¹ã¯ããããã©ãŠã¶åžå Žã®5ã10ïŒ ãå ããŠããããã§ãã 10ïŒ ã¯ããªãé«ãããã«æãããã®ã§ããã®å€ãã®ãŠãŒã¶ãŒã®ãµããŒãããããã®ããããã£ãŠããŸãã
ãããããããã4.2.0ã¯es6ã«åãæ¿ããè¯ãæ©äŒã§ãã IEãŠãŒã¶ãŒã¯ã4.1ã䜿çšããããææ°ã®ãã©ãŠã¶ãŒã䜿çšããå¿ èŠããããŸãã ããããç§ã¯ãã®æ±ºå®ãäžäººã§ããããããŸããã @ Chocobo1ããã«ã€ããŠã©ãæããŸããïŒ ãã°ããã®éãã¹ã¿ãã¯ãæŽæ°ããããšæã£ãŠãããšæããŸãã
ãã®10ïŒ ã«ã¯ããã¬ã³ããäœã§ãããããç¥ããªã幎é ã®ãŠãŒã¶ãŒãå«ãŸããŸãã qBittorrentã®ãŠãŒã¶ãŒã«é¢ããŠèšãã°ãIEã䜿çšããæ°ã¯ã¯ããã«å°ãªããšæããŸãããqBittorrentãŠãŒã¶ãŒã®çµ±èšããªããšããããŸããã
å€ãã®qBittorrentãŠãŒã¶ãŒã¯uTorrentã®åé¡ã®ããã«ããã«ç§»åããŸããããããŠåœŒããqBittorrentã«ç§»åããããã«uTorrentã®å±éºæ§ãååã«æèããŠãããªããããããèšå®ã«è¡ããããŠãããwebguiçµç±ã§ã¢ã¯ã»ã¹ã§ããããã«èšå®ããŠãã ããIEã䜿çšããŸãã
ããããç§ã¯ãã ãããä»®å®ããŠããã ãã§ããç§ã¯è¡ãã¹ãå®æ°ãæã£ãŠããŸããã
ææšã®è¿œå ã¯ãçæçã«éæããã«ã¯ããªã倧ããªãžã£ã³ãã§ãïŒç¹ã«ãGDPRåŸã®äžçã§ã¯ïŒããçŸåšãããã©ãŠã¶ãŒãµããŒããçµäºãããŸã§ã®éã«å°ãªããšã1ã€ã®ãªãªãŒã¹ããããšä»®å®ãããšãEOLèŠåãã³ãŒãã£ã³ã°ããæ©äŒãäžããããŸãã ãã®ããã«ããŠã圱é¿ãåãããã©ãŠã¶ã«ç¹ã«ã¡ãã»ãŒãžãã¿ãŒã²ãã£ã³ã°ãããŠãŒã¶ãŒã«åŸ®èª¿æŽãäžããããšãã§ããŸãã
ãã®åŸ®èª¿æŽã¯ããŠãŒã¶ãŒããã©ãŠã¶ãŒã®éžæãqBã ãã§ãªãã»ãã¥ãªãã£ã«å¹ åºã圱é¿ãäžããããšãç解ããã®ã«åœ¹ç«ã¡ãã¡ããªãã¯ããã¥ãŒã¹æçš¿ã決ããŠããããªãã¢ã©ãŒãããŠãŒã¶ãŒã®ç®ã®åã«çœ®ãããšãèãããšãããã¯ããããããè¯ãã¢ãããŒãã§ãã
ããããç§ã¯æ£åœãªçç±ãªãã«ãµããŒãããããããããŸããã
ç§ã®èãã§ã¯ãES6ã¯ã©ã¹ã¯ãIE11ãµããŒããç Žæ£ãããã»ã©éèŠã§ããïŒ ããããããŸãã...
çããè¯å®çã§ãã£ãŠããIMOã¯v4.2.xã·ãªãŒãºã«åãæ¿ããã«ã¯ãŸã ææå°æ©ã§ããhttpsïŒ //github.com/qbittorrent/qBittorrent/issues/453#issuecomment-475126288ã«åæã
ãŸãã¯ãTranspilationã«Babelã䜿çšããããšãã§ããŸãã ãšã«ããã³ã³ãã€ã«ã¹ãããã§ç«ã¡åŸçããŠããã®ã§ãããã»ã©å€§ããªåœ±é¿ã¯ãããŸããã ããããã°ãES6ã䜿çšãããšåæã«IEããµããŒãã§ããŸãã
Typescriptã䜿çšã§ããŸãã æšæºã®ãããã¿ã€ããªããžã§ã¯ãã«ã³ã³ãã€ã«ãããŸã
Typescriptã¯å¯èœã§ãããç§ã¯ãã¬ãŒã³ãªES6javascriptãIEã§å®è¡ãããjavascriptã«ãã©ã³ã¹ãã€ã«ããããšãæå³ããŸããã
ã¯ãããã ããè¿œå ã®ãã«ãã¹ããããå¿ èŠãªãããtypescriptã䜿çšããŠãã¿ã€ãã»ãŒããã£ã®æ©æµãåããããšãã§ããŸãã
ãããçŸåšäžå¯èœãªå Žåã¯ãXãµãŒããŒUIã®ãã¯ã©ã€ã¢ã³ãããªãã·ã§ã³ã«ã€ããŠã¯ã©ãã§ãããããqbittorrent-noxãšUIãå¥ã ã«å®è¡ã§ããŸããïŒ Delugeã¯æ¬¡ã®ãããªããšãè¡ããŸããã¡ã€ã³UIã¯ãµãŒããŒã®ã¯ã©ã€ã¢ã³ããšããŠãæ©èœããããããµãŒããŒããã£ã¹ãã¬ã€ã¬ã¹ãã·ã³ã§å®è¡ããå¥ã®ã³ã³ãã¥ãŒã¿ãŒãããªã¢ãŒãã§å¶åŸ¡ã§ããŸãã
ãã®éãç§ã®ä»£æ¿UIãä»äºãããŸã:)
@AndersMalmgren
qBittorrentã®Windowsã€ã³ã¹ããŒã«ã§ä»£æ¿UIããããã€ããæ¹æ³ã«ã€ããŠã®èª¬æã欲ããã®ã§ããã
ã€ãŸããXXXããã©ã«ããŒã«ããŠã³ããŒãããqBittorrentã®ããŠãŒã¶ãŒä»£æ¿WebUIãããã®ãã©ã«ããŒã«ãã€ã³ãããŸãã
äžèšã®ã³ã¡ã³ãã«ã¹ã¯ãªãããæçš¿ãããã©ãŒã¯ãè¡ã£ãããšãããããŸãã
æçš¿ããã¹ã¯ãªãããã³ããŒããŠãç¹å®ã®ãã¡ã€ã«åã®ãã¡ã€ã«ã«ä¿åãïŒååãæããŠãã ããïŒïŒãqBittorrentã®ä»£æ¿Web UIã§ãã®ãã¡ã€ã«ãå«ããã©ã«ããŒãæå®ã§ããŸããïŒ
ãããã³ãã¥ããã£ã«æäŸããŠãããŠããããšãã
@bakertony
ããã«ã¡ã¯ããŸãyuoã4.1.xãã©ã³ãã«ããããšã確èªããŠãã ããã
src\webui\www
ãããã¯ãã¹ãŠããŒã«ã«ã³ã³ãã¥ãŒã¿ãŒã®ãã©ã«ããŒã«å
¥ããå¿
èŠããããŸãã ãŸããå¿
ãsrc\icons
ãsrc\webui\www\public\images
ã«ã³ããŒããŠãã ãã
@bakertony
ããã«ã¡ã¯ããŸãyuoã4.1.xãã©ã³ãã«ããããšã確èªããŠãã ããã
src\webui\www
ãããã¯ãã¹ãŠããŒã«ã«ã³ã³ãã¥ãŒã¿ãŒã®ãã©ã«ããŒã«å ¥ããå¿ èŠããããŸãã ãŸããå¿ ãsrc\icons
ãsrc\webui\www\public\images
ã«ã³ããŒããŠãã ãã
ãããããããšãïŒ
ä»ã®äººã®ããã«ãããæ¬åœã«è©³ãã説æããããã ãã«ïŒ
1ïŒhttps://github.com/AndersMalmgren/qBittorrentã«ã¢ã¯ã»ã¹ããŸãã
2ïŒããŠã³ããŒãããŸããïŒ[ã¯ããŒã³ãŸãã¯ããŠã³ããŒã]ãã¯ãªãã¯ããŸãïŒ
3ïŒãã©ã«ããqBittorrent-mastersrc \ webui \ wwwããã³ã³ãã¥ãŒã¿äžã®å Žæã«ã³ããŒããŸãã
4ïŒã³ã³ãã¥ãŒã¿ã®ã³ããŒãããã©ã«ãã®ãwww \ publicãã«ç»åãã©ã«ããäœæããŸãã
5ïŒãqBittorrent-mastersrc \ iconsãã®å
容ããwww \ public \ imagesãã«ã³ããŒããŸãã
6ïŒqBittorrentã®ãèšå®-> WebUI->代æ¿WebUIã䜿çšãã§ããã¡ã€ã«ã®å Žæãwwwãã©ã«ããŒã«èšå®ãã[OK]ãã¯ãªãã¯ããŸããã
7ïŒã httpïŒ// localhost ïŒ8080ãã«ã¢ã¯ã»ã¹ããŠãæ°ããUIã確èªããŸã
ããŒã«ããŒã«æ°ãããRSSãã¢ã€ã³ã³ããããæ¢åã®RSSèªåããŠã³ããŒãã確èªã§ããŸãã
ããã¯ãšãŠãã¯ãŒã«ã§ããããããšãã
æ®å¿µãªãããç§ã¯RSSã¿ãå
šäœãèŠãããšæã£ãŠããŸãããã€ãŸããRSSãã£ãŒãã®å
容ãèŠãŠãå¿
èŠã«å¿ããŠè¿œå ã®ãã¬ã³ããããŠã³ããŒãããããšæã£ãŠããŸããïŒ-/ qBittorrentã¢ããããŒãã§ãã€ãæ¥ãããšãé¡ã£ãŠããŸãïŒ
@bakertonyããã«ã¡ã¯ãapi / v2 / rss / itemsïŒwithData = trueããã®ããŒã¿ãæäŸã§ããã¯ãã§ãã ããããè©Šããããšã¯ãããŸããã
https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get -all-items
次ã«ããã¬ã³ãã®è¿œå ã¡ãœããã䜿çšããŠãã¬ã³ããè¿œå ã§ããå ŽåããããŸã
https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#add -new-torrent
@bakertonyããŠã³ããŒãçšã®UIãä¿®æ£ããŸããã qbittorrentã®ããŠã³ããŒãå¯èœãªããŒãžã§ã³ã䜿çšããŠããå Žåã¯ãå¿ ã41xãã©ã³ãã䜿çšããŠãã ããã ãã¹ã¿ãŒã¯ããã¹ã¿ãŒãããœãŒã¹ãæ§ç¯ããå Žåã§ã
@AndersMalmgrenã«æè¬ããŸãã ãã ããHTTPãœãŒã¹ãã2ã€ã®jsã©ã€ãã©ãªããã«ããããšãããããHTTPSqbã€ã³ã¹ã¿ã³ã¹ã®å Žåãšã¯ç°ãªããŸãã ã¯ãã¹ãªãªãžã³ã§ãããããããã¯ãã©ãŠã¶ã«ãã£ãŠãããã¯ãããŸãã httpãhttpsã«å€æŽããã ãã§ããããä¿®æ£ãããŸãã çæ³çã«ã¯ãã©ã€ãã©ãªã¯WebUIãšäžç·ã«ããã±ãŒãžåãããã¹ãã ãšæããŸãã
ãŸãã代æ¿UIãéžæãããšãUIå ã®ã¢ã€ã³ã³/ç»åã«å¯Ÿãããã¹ãŠã®ãªã¯ãšã¹ãããšã©ãŒ500ã§å€±æããŸããçç±ã¯ããããŸãããããã¹ãŠãã¡ã€ã«ã·ã¹ãã ã®æ£ããå Žæã«ãããŸãã qbittorrentãŸãã¯nginxã«ãšã©ãŒã¯ãããŸãã...å¥åŠã§ãã
ç§ã®æ倧ã®åé¡ã¯ãæ°ããRSSãã£ãŒããè¿œå ã§ããªãããšã§ãã ã©ããããããããããqbconfigã¹ãã¢ã«æ¿å ¥ããæ¹æ³ã¯ãããŸããïŒ
ãã®æ©èœãRaspberryPi 2ããµããŒãããããŒãžã§ã³ã«éžæããŠããã ããŸããïŒ ããããšã
@ AndersMalmgren ãv4_1_xãã©ã³ãã®ã¯ããŒã³ãäœæããã³ã³ãã€ã«ããŠãæ瀺ã«åŸã£ãŠä»£æ¿UIãèšå®ããŸããã RSSãã¿ã³ãååŸããŸããããäœãå®è¡ãããŸããã ã©ããééã£ãŠããã®ã§ããããïŒ
@AndersMalmgren ãå®éã«ã¯ããªããžããªãšknockoutjsããjavascriptããããã¯ããã®ã¯NoScriptã¢ããªã³ã ãã§ããã ããããèš±å¯ããåŸãããã¯æ©èœããŸãã
@ AndersMalmgren ãAPIã¯ãŸã èšå®ïŒã¹ããŒãïŒãšããœãŒããã£ã«ã¿ãªã³ã°ããµããŒãããŠããŸãããããããšãåã«ãããå«ããããšãæ°ã«ããŸããã§ãããïŒ
@Ingvixèªåã§äœ¿çšãããã®ã ããè¿œå ããŸããã
https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#set -auto-downloading-rule
@AndersMalmgren ã
ããã¯ãŸã è¿œå ãããŠããªãã®ã§ããïŒ ãã®æ©èœãªã¯ãšã¹ãã¯6æ³ã§ãã ããå æžã«ããŠïŒ ããã¯ãBitTorrentã¯ã©ã€ã¢ã³ãã®éèŠãªéšåã§ãã
ãããªãŒãŠã§ã³ïŒ ç§ãã¡ãããã«æ¯æã£ãéé¡ã§ãããªãããŸã ã³ãŒãã£ã³ã°ããŠæåºããŠããªãã®ã¯ãšãã§ããªãããšã§ã!!
<< / sarcasm >>ãã©ã®ããã«é
眮ããŸããïŒ
ç§ã¯ãã§ã«ããã«ãã©ã¹1ãä»ããŸããããç§ã®å£ã®ãããšããã«ãéãå ¥ããŠåãã§ãããããã®è³éã«è²¢ç®ããã§ãããïŒ
ãããšããããæ©èœãå®äºãããŸã§ãæ°å¹ŽåããLinuxçšã®utorrent3.3ã䜿ãç¶ããŸãã
ãããŒ... 6幎
ãããç§ãããªãã ã£ããåŸ ã€ã®ããããããŸãã
ãããŒ... 6幎
https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -466984808
https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -471326843
+1
ããã¯ã¡ãã£ãšç¡æå³ã«æããŸãããç§ã¯ãã®ãªã¯ãšã¹ãã«+1ãè¿œå ããŸã...ãã®åŸãuTorrentã䜿ãç¶ããæ°å¹Žããšã«ãã§ãã¯ããŠãé²æ©ããããã©ããã確èªããŸãã ããã¯èšã£ãŠããç§ã¯ãããç¡æã®è£œåã§ããããšãèªèãããããè¡ãããšãæè¬ããŠããŸããããããåºåã«ãã£ãŠãµããŒããããŠããå Žåããã®ãªã¹ãã®äººã ã移è¡ãããããšã¯ãã®åå ¥ãå¢ããã¯ãã§ã...
@WilliCJäžäœã©ãããŠç¡æå³ãªã®ïŒ Rtorrentã¯ãå®å šãªRSS管çãåããå¯äžã®UIã§ããããªãŒãã³ãœãŒã¹ã§ãã åºã䜿ãããŠããŸãã
ç³ãèš³ãããŸããã@owenashurstäžæã€ãŸãã6幎åã®æªåŠçã®ã¹ã¬ãããžã®ãªã¯ãšã¹ãã«ãå°ããªã+1ããªã¯ãšã¹ããè¿œå ããŠãæå³ããããŸããã ç³ãèš³ãããŸããããRtorrentã¢ããªãããããšã«æ°ã¥ããªãã£ãã®ã§ãæããã«ééã£ãå Žæã«çœ®ããŠããŸããŸããã uTorrentãqBittorrentããããå§ãã§ããïŒ
@WilliCJ haha okãããRtorrentã¯LinuxããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ã§ãRutorrentãšããUIããããããã©ã«ãã§äžè¬çã«ã€ã³ã¹ããŒã«ãããRSSãã©ã°ã€ã³ããããŸãã Qbittorentã¯ã¯ãã¹ãã©ãããã©ãŒã ã§ãããRtorrentãã¯ãã¹ã³ã³ãã€ã«ãããŠãããã©ããã¯ããããŸããã
@owenashurstã«æè¬ããŸãããã§ãã¯ãããšãããRtorrentã¯ãŸã Linuxã®ã¿ã®ããã§ãã䜿çšããŠããããã¯ã¹ã§Windowsãã©ãããã©ãŒã ãå®è¡ããŠãããããæ©èœããŸããã ãšã«ããããããšãïŒ ããã§ããqBittorrentã®RSSãã£ãŒããšãã£ã«ã¿ãŒãªãã·ã§ã³ãwebuiããéçºãªã¹ãã«ã¢ã¯ã»ã¹ã§ããããã«ããããã«æãå·®ã䌞ã¹ãããšæããŸãïŒ
6幎éåŸ
ã€ã®ã¯ãç§ã«ãšã£ãŠ1ã€ã®æ©èœã«ã¯é·ãããŸãã
LinuxãdockerãrssãwebuiããµããŒããã代æ¿ãã¬ã³ãã¯ã©ã€ã¢ã³ãã¯ãããŸããïŒ
@ Haxy89åã®ã³ã¡ã³ããèªãã ããLinuxããŒã¹ã®bittorrentã¯ã©ã€ã¢ã³ãã§ããRtorrentãšãåå¥ã«ã€ã³ã¹ããŒã«ããWeb UIïŒRutorrentïŒã«ã¯ããªã³ã©ã€ã³ã®ãã¹ãŠã®ãã¥ãŒããªã¢ã«ã«ããã©ã«ãã§å«ãŸããŠããRSSãµããŒãä»ãã®ãã©ã°ã€ã³ãããããšãè¿°ã¹ãŸããã ãšã«ãããã¹ãŠãå ¥ã£ãŠããDockerã³ã³ããããããŸãã
@owenashurst @ Haxy89 @WilliCJ https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -483063942 + httpsïŒ//github.com/qbittorrent/qBittorrent/issues/453#ããaltWebUIã®å®è£ ãè©ŠããŸããã
@WolfganPè¿œå /ç·šé/åé€ã®ããã«RSSãã£ãŒãã管çã§ããéãããŸã è©ŠããŠããŸãããããã¯ããªãè¯ãããšã§ãã 倱ãããRSSãã£ãŒããããã¬ã³ãã衚瀺/ããŠã³ããŒãã§ããªãã®ãèŠãŸããããããã¯ããã»ã©éèŠã§ã¯ãããŸããã
@WolfganP
è©Šããã ãã§ãã...
ããã§ã¯äœãããŸãã...
RTorrentãšæŠãã€ããã§ã
@ Haxy89ããã
@WolfganP
è©Šããã ãã§ãã...ããã§ã¯äœãããŸãã...
ã³ã³ãœãŒã«ã¯äœãšèšã£ãŠããŸããïŒ äœããæ£ããèšå®ãããŠããŸããã 4.1.xãã©ã³ãã«ããããšã確èªããŠãã ããã
ç·šéïŒçŸåšããã¹ã¯ãããUIãããã£ãŒããèšå®ããå¿ èŠããããŸãã ãããããã£ãŒããèšå®ã§ããããŒãžã§ã³ããããŸãã ããããããã¯å°ããã°ããããŸã
@WolfganP
ãã¹ã¯ãããã䜿çšããŠããŸããã
RTorrentã®ããã«Webãããã¹ãŠãã»ããã¢ããããå¯èœæ§ããããšçŽ æŽãããã§ããã
@ Haxy89 @AndersMalmgrenãã£ãŒãããã§ã«å®çŸ©ãããŠããå Žåã§ãã[ãã£ãŒã]ã¿ãã§åãåé¡ãçºçããŸãããé©åã«ãã©ãã«ã·ã¥ãŒãã£ã³ã°ããæéããããŸããã§ããã ãµã³ãã«rss / feeds.jsonïŒ
{
"The Pirate Bay - Video": {
"uid": "{ad569ad7-ea3e-4bb5-8c85-a43215b5d352}",
"url": "https://thepiratebay.org/rss//top100/200"
}
}
ãã¹ã¿ãŒãã«ãã§äœæ¥ããŠãããšãã«ã @ AndersMalmgrenãã©ãŒã¯ã®ã¯ããã«é ããŠããããšãåé¡ã«ãªãå¯èœæ§ããããŸãã ãã¶ã@Piccirello ïŒå¥åWebUIãã¹ã¿ãŒ:-)ã¯ãåé²ããŠãã©ãã«ã·ã¥ãŒãã£ã³ã°ãæ¯æŽããæ¹æ³ãææ¡ããããšãã§ããŸãã
@ wolfganp4.1.5ã§ã®ã¿ãã¹ãããŸããã1.7ã«æŽæ°ãããŸã
@WolfganPã¯ç§ã®ããã«4.1.7ã§åäœããŸã
ãšããã§ãRSSãã§ããã匷å¶ããAPIé¢æ°ã¯ãããŸããã ãããã£ãŠããã£ãŒãã«èªåã«ãŒã«ãè¿œå ããå¿ èŠããããŸãã ãã以å€ã®å Žåã[ãã£ãŒã]ã¿ãã¯ç©ºã«ãªããŸããã[ãã£ãŒã]ã¿ãã®äžã«ãã£ãŒãã®ååã衚瀺ãããŸãã
åºæ¬çãªãã£ãŒã管çUIã§4.1.xãã©ã³ããæŽæ°ããŸãã
@AndersMalmgrenã¯ä»ç§ã«ãšã£ãŠã¯åé¡
ãšããã§ãrss.jsã®39è¡ç®ã§ã¯ãRSSã¢ã€ã³ã³ã®åœ¢åŒãsvgã«æŽæ°ããå¿
èŠããããŸãïŒ src='images/qbt-theme/rss-config.svg'
@ WolfganP4.1.xã®ã¢ã€ã³ã³ã䜿çšããå¿ èŠããããŸãã ã¢ã€ã³ã³ã¯pngã§ã
@owenashurst @ Haxy89 @WilliCJçããããaltWebUIã®å®è£ ãè©ŠããïŒ453ïŒã³ã¡ã³ãïŒ + ïŒ453ïŒã³ã¡ã³ãïŒ ïŒ
@WolfganPä»æã£ãŠããŠããRSSã«ãŒã«ããã¿ã³èªäœãæ£ãã衚瀺ãããŸããïŒããããäœãééã£ãããšãããã®ã§ãããæ瀺ã«åŸã£ããšæããŸããïŒããRSSã«ã¢ã¯ã»ã¹ããŠç·šéã§ããããã§ãã«ãŒã«ãèªåããŠã³ããŒãããæ¢åã®RSSãã£ãŒãã衚瀺ããŸãããè¿œå /ç·šéã¯ããŸããã
ã³ã³ãœãŒã«ã«ãšã©ãŒããªãã確èªããŠãã ãã
ã³ã³ãœãŒã«ã«ãšã©ãŒããªãã確èªããŠãã ãã
ç³ãèš³ãããŸããã@ AndersMalmgren ã
qBittorrentã®æåã®ã€ã³ã¹ããŒã«ã¯ãqBittorent.orgãµã€ãããããŠã³ããŒãããã€ã³ã¹ããŒã©ãŒããã®ãã®ã§ããããgithubããclone / zipãããŠã³ããŒãããã®ãqBittorrent-mastersrc \ iconsããã©ã«ããŒã«ãªãããã€ãã®ãã¡ã€ã«ãã³ããŒããŸããã ã https://github.com/AndersMalmgren/qBittorrentãclone/zip ã RSSãã£ãŒãã®ã¢ã€ã³ã³ã衚瀺ãããŸãã
ã¢ã³ããŒã¹ãšãªãŒãŠã§ã³ã«æè¬ããŸãïŒ
... qBittorrentããfilebotãæ©èœãããæ¹æ³ãèãåºãå¿ èŠããããŸãïŒ
ãšããã§ãRSSãã§ããã匷å¶ããAPIé¢æ°ã¯ãããŸããã ãããã£ãŠããã£ãŒãã«èªåã«ãŒã«ãè¿œå ããå¿ èŠããããŸãã ãã以å€ã®å Žåã[ãã£ãŒã]ã¿ãã¯ç©ºã«ãªããŸããã[ãã£ãŒã]ã¿ãã®äžã«ãã£ãŒãã®ååã衚瀺ãããŸãã
@AndersMalmgrenãã 声ãåºããŠèããŸãïŒãããŠç§ã¯AFK
åãã¡ãäœã話ããŠããã®ãããããªãã ã©ã®APIãæ¬åœã«æããã§ããïŒ
ã©ã®ãã¬ã³ãã«ãäžèŽããªãã«ãŒã«ãè¿œå ããŸããããšã«ãããã£ãŒãã®æŽæ°ãããªã¬ãŒããŸããïŒ
ãã®ããã«ã¯æ©èœããŸããã
ãã£ãŒãã¯æå®ãããééã§æŽæ°ãããŸãã ãã£ãŒãæŽæ°ã«ãŒã«ãé©çšãããå Žåã
ãããã®èšå®ããŠãŒã¶ãŒã«å ¬éããå¿ èŠããããŸã
ããã¯çŸåšã®APIã§ä¿®æ£ã§ããŸãã ãã ãããã¹ãŠã®ãã£ãŒããæŽæ°ããæ©èœã¯APIã«ååšããŸãã
ãŸãã¯ããã®ããšã«ã€ããŠã·ã³ã°ã«ãã£ãŒããæŽæ°ããŸã
4.1.xãã©ã³ãã®ããŠã³ããŒãèšå®ã¿ãã«RSSãã£ãŒãèšå®ãè¿œå ããŸãã
@AndersMalmgren
èªåããŠã³ããŒãã®èšå®ã¯ãããŸããïŒ
ãã¬ã³ãã¯ã©ãã§èªåããŠã³ããŒããããŸããïŒ ããã©ã«ãã®ããŠã³ããŒããã©ã«ãïŒ
éžæãããã¬ã³ããªã©ã®ã¿ãèªåããŠã³ããŒããããã£ã«ã¿ãŒïŒ
@ Haxy89圌ãã¬ãã§è¡ã£ãæåã®å€æŽã§ã¯ãããŸãããïŒ ãŸãã¯ãå°ãªããšããã®å·ã§çºè¡šããããã®ã ãã¹ãŠã®ã«ãŒã«ã®ããŠã³ããŒãå Žæãèšå®ã§ããŸãã
@Ingvixãèšãããã«Haxy89 @人ã¯å«ãŸããŠããŸãã äžèšã®RSSèšå®ã¯ä»ãŸã§ãããŸããã§ããã
ããŠã³ããŒãèšå®ã¿ãã«RSSãã£ãŒãèšå®ãè¿œå ããŸãã
å€æŽããã«ãªã¯ãšã¹ããšããŠæäŸã§ããŸããïŒ
ãŸãã¯ãqBittorrentã®çµã¿èŸŒã¿WebUIãšäºææ§ããããŸãããïŒ
ãã ãããã¹ãŠã®ãã£ãŒããæŽæ°ããæ©èœã¯APIã«ååšããŸãã
ã«ãªããŸãã
ããŠã³ããŒãèšå®ã¿ãã«RSSãã£ãŒãèšå®ãè¿œå ããŸãã
å€æŽããã«ãªã¯ãšã¹ããšããŠæäŸã§ããŸããïŒ
ãŸãã¯ãqBittorrentã®çµã¿èŸŒã¿WebUIãšäºææ§ããããŸãããïŒ
äžè¶³ããŠããæ©èœã¯ç¿»èš³ã ãã§ãã ä»ã®ãšããããŒãã³ãŒããããŠããŸã
翻蚳ããªããŠã倧äžå€«ã§ãããå°ãªããšãç§ãã¡ã¯ãããæã«å ¥ããããšãã§ããŸãïŒ
ããã§ãå°ãªããšãèŠèŠçã«ã¯ããªããšãæ©èœãããããšãã§ããŸããã ãã ããå®éã«æ¥æµãè¿œå ããããšã¯ãããŸããã§ããã ã€ã³ã¯ã«ãŒã/ã€ã³ã¯ã«ãŒããªãã¯æ£èŠè¡šçŸããµããŒãããŠãããšæããŸããïŒ ã¹ã©ãã·ã¥ãä»ããŠå ¥åããå¿ èŠããããŸããããããšãå ¥åããªãã§ãã ããã ããã§ãªããã°ãç§ã¯å®éã«ãããã©ã®ããã«æ©èœããã®ãããããŸããã æ£èŠè¡šçŸã®ãµããŒããæ€èšããŸããïŒ
ãŸããRSSèšå®ãããã£ãåŸãå®éã«ã¯ãã¹ãŠäžç·ã«æ©èœããªããªããŸããã ãã®ãšã©ãŒãåºåããŸãïŒ
èš±å¯ãããªããã¡ã€ã«ã¿ã€ããéåžžã®ãã¡ã€ã«ã®ã¿ãèš±å¯ãããŸã
ç§ãURLã«è¡ããšã
ãªããžããªã®debian10qbittorrentã䜿çšããŠããŸãã 4.1.5-1ã§ã
ããŠã³ããŒãã»ã¯ã·ã§ã³ã®èšå®ãå€æŽãããšãæ°ããUIãç¡å¹ã«ãªããå床æå¹ã«ããå¿ èŠããããŸãïŒãã¹ãŠãå£ããªãããã«ç¥ã£ãŠãã ããïŒ
ãšã«ãããç§ã¯ããªããäž»ã®ä»äºãããŠãããšèšãããã§ãã å°ããã°ããã£ããšããŠããwebuiã®rssã«ã¢ã¯ã»ã¹ã§ããŠãšãŠãæè¬ããŠããŸãã
@xrishoxèªåã§æ£èŠè¡šçŸãã£ãŒã«ãã䜿çšããŠããªããããæ£èŠè¡šçŸãã£ãŒã«ããå ¬éããŠããŸããã ä¿®æ£ã§ããŸãã ããããšã:)
ãã®ãšã©ãŒãäœãæå³ãããç¥ã£ãŠããŸãããåãå ¥ããããªããã¡ã€ã«ã¿ã€ããéåžžã®ãã¡ã€ã«ã®ã¿ãèš±å¯ãããŸãã
衚瀺ãããwebuiURLã«ã¢ã¯ã»ã¹ãããšæã 衚瀺ãããŸãã qbittorrent.confãåé€ããŠæåããããçŽãããšã«ãã£ãŠã®ã¿ä¿®æ£ã§ããããã§ã
ç·šé1ïŒ
ãããç§ã®ã€ã³ã¹ããŒã«ã«åºæã®ãã°ãªã®ããä»ã®äººãééãããã°ãªã®ãããããªãã®ã§ãä»ã®èª°ããåãåé¡ãæ±ããŠããå Žåã«åããŠãç§ã®ããã«åãã解決çãæçš¿ããŸãã
https://github.com/qbittorrent/qBittorrent/issues/10503#issuecomment -486923269
ãïŒ10485ã¯ãã°ã€ã³ããŒãžã®ååãlogin.htmlããindex.htmlã«å€æŽããŸãããv4.1.5ã¯åŒãç¶ãlogin.htmlãæ€çŽ¢ããŸããããããªãã¯ãã©ã«ãã«ã¯index.htmlãå«ãŸããŠããŸãããã®ãã¡ã€ã«ã®ååãlogin.htmlã«å€æŽããŠã¿ãŠãã ãããã
ç·šé2ïŒ
ä»ãç§ã¯ãã®å¥åŠãªåé¡ãæ±ããŠããŸããé »ç¹ã«ä»£æ¿webuiãç¡å¹ã«ãªããå床æå¹ã«ããŠä»£æ¿ãã¹ãåå ¥åããå¿ èŠããããŸãã å°ãªããšãããã¯æ©èœããã®ã§ãããã»ã©å€§ããããšã§ã¯ãããŸãããããªãããããããè¡ã£ãŠããã®ãããããŸããã ãŸããUIã¢ã€ã³ã³ã衚瀺ããããäœããã®å¥åŠãªçç±ã§ããã¹ããè€è£œãããããã«ãããå¥åŠãªUIãã°ãçºçããŠããŸãã ãã¹ãŠã®ã¢ã€ã³ã³ã/ privateãš/ publicã«ã³ããŒããã®ã§ãããããªããªã®ãããããŸããã qbittorrentã䜿çšããèœåãæãªãããšã¯ãããŸããããç¹ã«å¿é ããå¿ èŠã¯ãããŸããã å®å šãæãããã«ãããã§å ±åããã ãã§ãã
ãããå¥åŠãªUIã®çã®åçã§ãhttps://i.imgur.com/kkdGyzs.png
ããã¯çŽ æŽãããæ©èœãªã®ã§ããããå®å®ããŠããŠå ç¢ã§ããããšãããã£ãæç¹ã§ããŒãžãããããšãæ¬åœã«æãã§ããŸãã
ãã ãããã¹ãŠã®ãã£ãŒããæŽæ°ããæ©èœã¯APIã«ååšããŸãã
ã«ãªããŸãã
ããããšã@glassez ïŒ https://github.com/qbittorrent/qBittorrent/pull/11055
ãã®ãšã©ãŒãäœãæå³ãããç¥ã£ãŠããŸãããåãå ¥ããããªããã¡ã€ã«ã¿ã€ããéåžžã®ãã¡ã€ã«ã®ã¿ãèš±å¯ãããŸãã
ããã¯ã* nixã§altwebUIãæå¹ã«ãªã£ãŠããŠãèŠæ±ããããã¡ã€ã«ããéåžžã®ãã¡ã€ã«ãã§ã¯ãªãå Žåã«çºçããŸãïŒæ£ç¢ºã«äœãæå³ããã®ãããããŸããïŒã ãŸãããã®ãããªãã¡ã€ã«ãååšããªãããããã®ã¿ã€ãã確èªã§ããªãå ŽåããããŸãã
@xrishoxæ£èŠè¡šçŸãªãã·ã§ã³ãå ¬éããŸããã ããã¯ç§ã®4,1.xãã©ã³ãã«ãããŸã
4.1.xãã©ã³ãã®ããŠã³ããŒãèšå®ã¿ãã«RSSãã£ãŒãèšå®ãè¿œå ããŸãã
qBittorrentãã¹ã¿ãŒïŒïŒ11056ïŒã«ç§»æ€ããŸãã
æ®å¿µãªããã @ AndersMalmgrenã®ä»ã®ã³ãŒãã§ã¯ãããè¡ãããšãã§ããŸãããããã¯ãã³ãŒãããŒã¹ãšäºææ§ããªãããã§ãã
@glassezããã¯ç§ã«ã¯å€ãããåŠæ ¡ã§ã:)
ç·šéïŒãããŠç§ã®ã³ãŒãã¯å ¬åŒãªãªãŒã¹ã®ããã«ã¯ãªãŒã³ã¢ããããå¿ èŠããããŸã
@AndersMalmgren https://github.com/qbittorrent/qBittorrent/pull/11055ãè©Šãæ©äŒããããŸãããïŒ ïŒWebAPIãä»ããŠRSSã¢ã€ãã ãæŽæ°ããããšãèš±å¯ããŸãïŒ
ããã§ãããæ£èŠè¡šçŸãæå¹ã«ããŸããã ããªã¬ãŒãšãªãã€ãã³ãã¯ãŸã ãããŸããã®ã§ãããŸãããããšãé¡ã£ãŠããŸãã
ããªãããããã«ãªãŒãã³ã§ãããªãã°ãç§ã¯ããã€ãã®ç掻ã®è³ªã®ææ¡ãããŸãã ãããã¯ãå®éã«ã¯ç§ã®ãŠãŒã¹ã±ãŒã¹ã§å®å šã«æ©èœããŠãããããèŠæ±ãèŠæ±ã§ã¯ãªãããšã«æ³šæããŠãã ããããã ããèæ ®ãã¹ãããšãããã€ããããŸãã
[èªåããŠã³ããŒã]ããŒãžã§[ä¿å]ãã¯ãªãã¯ãããšãçŸåšãã©ãŒã«ã¹ãããŠãããã®ã ãã§ãªããå€æŽãããã¹ãŠã®èªåããŠã³ããŒãã®å€æŽãä¿åãããå¯èœæ§ããããŸãã ãŸãã¯ã[ãã¹ãŠä¿å]ãã¿ã³ãè¿œå ããŸãã
䟿å©ãªãã1ã€ã®æ©èœã¯ãèªåããŠã³ããŒãããããã®ããªãã·ã§ã³ã§ã«ããŽãª/ã¿ã°ã«è¿œå ã§ããããã«ããããšã§ããã«ããŽãª/ã¿ã°ã¯ãèªåããŠã³ããŒãããããã®ã®ååã§ãã
@WolfganPçŸåšãC ++ç°å¢ã¯ãããŸãããäœå¹Žã䜿çšããŠããªãã®ã§ãæ£çŽã«ã³ã³ãã€ã«ããã®ã«
@xrishoxãã£ãŒãããã¯ãããããšãããã¹ãŠä¿åãã¿ã³ãè¿œå ã§ããŸãã ãã®ã«ããŽãªã¯éåžžã«äž»èŠ³çã§ãé©åããªãå¯èœæ§ããããŸãã å¿ èŠã«å¿ããŠãã«ããŽãªãã£ãŒã«ããå ¬éã§ããŸããïŒ
@AndersMalmgrenãããDockerfileã䜿çšããŠããŒã«ã«ã®qBittorrentã³ãŒããç°¡åã«ãã«ãã§ããŸãã ãœãŒã¹ããlibtorrent1.1ããã«ãããŸãã çŸåšãããã€ãã®æ¬ ç¹ããããŸãïŒconfigãæž¡ãããšã¯ã§ããŸãããã€ã³ã¯ãªã¡ã³ã¿ã«ãã«ãã¯ãµããŒããããŠããŸããïŒããqBittorrentã®ãã«ãã¯éåžžã«ç°¡åã§ãã
Dockerãã«ãïŒ docker build -t qbittorrent/qbittorrent .
Dockerã®å®è¡ïŒ docker run --rm -it -p 8080:8080 qbittorrent/qbittorrent
@Piccirello 4.2
ãã®æç¹ã§ãããªãã®æšæž¬ã¯ç§ã®ãã®ãšåããããè¯ãã§ãã
@Piccirello 4.2
4.2.0ã®ãããªãã¯ããŒã¿ã¯ãïŒ10047ã«åŸã£ãŠãä»åŸæ°æ¥/é±ãŸãã¯2æ¥ã§ãªãªãŒã¹ãããå¯èœæ§ããããŸã
6ææ«ãã䜿çšããŠãã4.2.0ã¢ã«ãã¡ãã«ãã以åã«æçš¿ãããŠããŸãã
äºè§£ããŸãããRSSä¿®æ£ãããŒã¿çã®å Žåããã¹ã¿ãŒã«å®è£ ã§ããŸãã
ã ããç§ã¯ã¡ããã©rssã€ãã³ãããªã¬ãŒãæã£ãŠããŠãæ£èŠè¡šçŸãæ©èœããŠããªãããã§ãã ç§ã¯ãããæ©èœããå Žæãæ£ç¢ºã«rutorrentããã³ããŒããã¹ã©ãã·ã¥ãããšãªãã®äž¡æ¹ã§è©ŠããŸããã
ãrefreshItemãã¢ã¯ã·ã§ã³ãv4.1.xãã©ã³ãã§äœ¿çšã§ããããã«ãªããŸããã
@glassezã©ããã§ããŒã¿ãã€ããªãå ¥æã§ããŸããïŒ ããããšã
rssuiãå®æãããã®ãåŸ ã¡ãããŸããã @AndersMalmgrenãã¹ã¿ãŒã«ãã«ãªã¯ãšã¹ãã
@ caoli5288 https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -483063942ã®ããã«altWebUIã¡ãœããã䜿çšããŠã¿ãŸãããïŒ ïŒhttps://github.com/AndersMalmgren/qBittorrentã¯https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment-483342384ã«åŸã£ãŠ4.1ãã©ã³ãã䜿çšããŸãïŒ
@WolfganPåäœããŸãããå®å šã§ã¯ãããŸããã https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -519135601ã«ç€ºãããŠãããã®ãšã¯ç°ãªãããã£ãŒãã®ã³ã³ãã³ãããã©ãŠã¶ã§è¡šç€ºããã®ã¯å°é£ã§ãã
@ caoli5288 https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -519135601ã¯webUIã§ã¯ãªããQtUIã§ãã ãããã®ã³ã¡ã³ãã¯ãWeb APIã§ã¯å©çšã§ããªããã£ãŒãã®æŽæ°ã«é¢é£ããŠãããåŸã§@glassez ïŒ https://github.com/qbittorrent/qBittorrent/pull/11055ïŒã«ãã£ãŠå®è£ ãããŸããã
調åã¯ã©ãïŒ æ¬¡ã®ãªãªãŒã¹ã§ãã®æ©èœã確èªã§ããŸããïŒ
調åã¯ã©ãïŒ æ¬¡ã®ãªãªãŒã¹ã§ãã®æ©èœã確èªã§ããŸããïŒ
ããªãã¯ãããè©Šãããšãã§ããŸãïŒ //github.com/miniers/qb-web
äžåœèªãããããŸãã
調åã¯ã©ãïŒ æ¬¡ã®ãªãªãŒã¹ã§ãã®æ©èœã確èªã§ããŸããïŒ
ããªãã¯ãããè©Šãããšãã§ããŸãïŒ //github.com/miniers/qb-web
äžåœèªãããããŸãã
@miniersããããšãïŒ AltWebUIã§è©ŠããŠã¿ãŸãããïŒ åé¡https://github.com/miniers/qb-web/issues/3ãéããŠãæ¢åã®ç¿»èš³æååã®äœ¿çšã«ã€ããŠè³ªåããŸãã
ç§ã¯RSSã§+1ã§ãã ããã¯ãåºæ¬çãªRSSããŠã³ããŒããqbittorrent-noxã«æ¥ãããšãæå³ããŸããïŒ
ïŒééããªãããã¯2013幎ã®æç¹ã§ç¡èŠãããŠããŸãïŒ
4.2ã§ãããèŠãããšããåžæã¯ãããŸããïŒ @ Chocobo1ããªããå€ãã®æ¹åãããã®ãèŠãŸããããããŠããã¯ç§ãwebuiã§èŠéããŠããæ倧ã®ããšã ãšæããŸã:(
+1ç§ã¯qbittorrentãäœå¹Žã䜿çšããŠããŸãããqbittorrentã§Web UI RSSããµããŒããããŠããªããããå¥ã®ãã¬ã³ãã¢ããªã±ãŒã·ã§ã³ãç©æ¥µçã«æ¢ããŠããŸãã
qbittorrentWebãµã€ãã®@ AndersMalmgren4.2.0 Beta
wtf 9幎åŸããŸã æŽæ°ã¯ãããŸãã
@ikiddoiããããã³ã¡ã³ãã®äžãèªãã§ãqbittorrentã®ããŒã¿çã§ããããšã
åç §ïŒ https ïŒ
äœãã足ããŸãããäžå®å®ãªïŒ4.2.0 \ ã201911110018-6775-8711613 \ ãubuntu18.04.1ïŒããqbitorrent-noxã䜿çšããŠããWebUIã«ãªãã·ã§ã³ã衚瀺ãããŸããã
å®å šã«æ³šæããŠãã ããããnoxãšæšæºããŒãžã§ã³ã®éã«ã¯åžžã«æ©èœã®ããªãã£ã®åé¡ããããŸããã
ãã¹ã¿ãŒãã©ã³ãã§4.2ã®ãµããŒããä¿®æ£ããŸãã
https://github.com/AndersMalmgren/qBittorrent/tree/master
æŽæ°ãã£ãŒãããµããŒããããããã«ãªããŸããã ãã£ãŒãåã®æšªã«ããå°ããªæŽæ°ã¢ã€ã³ã³ãã¯ãªãã¯ããŸã
å
¬åŒããŒã ã®ã³ãã¥ããã£ãžã®å¯Ÿå¿ã®é
ããç解ããŠããŸããã
ãããã®äœåãã®æªè§£æ±ºã®åé¡ãèŠãŠãã ããïŒ
ãã¶ããqbittorrentã®ä»£ãããèŠã€ããæãæ¥ãã®ã§ãããã
å ¬åŒããŒã ã®ã³ãã¥ããã£ãžã®å¯Ÿå¿ã®é ããç解ããŠããŸããã
ãããã®äœåãã®æªè§£æ±ºã®åé¡ãèŠãŠãã ããïŒ
ãã¶ããqbittorrentã®ä»£ãããèŠã€ããæãæ¥ãã®ã§ãããã
éçºè ãäžè¶³ããŠããããã§ãã æªè§£æ±ºã®åé¡ã«è²¢ç®ããŠè§£æ±ºçãæäŸããããšã¯å€§æè¿ã§ãããããã¯ç¡çµŠã®ä»äºã§ãããããããããèå³ããããŸããã
æ©èœãšä¿®æ£ãéçºããããã«ãããå¯ä»ããŸãããïŒ éçºè ã¯èªåã®æéã§èªç±ãªä»äºãããŠããã®ã§ããã®ãããªããšããã£ãšæ©ãå®è£ ãããã°ããã®ã§ãããè¡åããã®ã§ã¯ãªãããããžã§ã¯ãã«è²»ãããä»äºãšåªåã«æè¬ããå¿ èŠããããŸãã圌ããç§ãã¡ã®ããã«ãã£ãšæéãç ç²ã«ããªããšãã圌ããç§ãã¡ãæãããšãç¡æã§è¡ãã圌ãã«è ¹ãç«ãŠãã®ã¯ç§ãã¡ã®æš©å©ã®ããã§ãã
å°çãããç§ãéçºè ã®äžäººã ã£ããããããžã§ã¯ãã®ãŠãŒã¶ãŒãä¿¡ããããªãã»ã©æ©ç¥ããã§ãããšãã«ãæéãšåŽåããããžã§ã¯ãã«è²»ãããããã©ãããåèãå§ããŸãã
ãããŒããã®ã¹ã¬ããã®è³æ Œã
å
¬åŒããŒã ã¯ã圌ããåã«ããªãã£ããšããå
¬åŒå£°æãçºè¡šããŸãã
ãã®æ©èœã«è²»ããæéããããŸãããããã®è²¢ç®ã«ãªãŒãã³ã§ãã
å°å瀟äŒã»å
±åäœã ã€ãã«ããã«å°çããããšãå¬ããæãããèªåã§è²¢ç®ããŠãã ããã
11æ14æ¥12æ28å20ç§2019 caoli5288 [email protected]æžããŸããïŒ
å ¬åŒããŒã ã®ã³ãã¥ããã£ãžã®å¯Ÿå¿ã®é ããç解ããŠããŸããã
ãããã®äœåãã®æªè§£æ±ºã®åé¡ãèŠãŠãã ããïŒ
ãã¶ããqbittorrentã®ä»£ãããèŠã€ããæãæ¥ãã®ã§ããããâ
ããªããèšåãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããããç»é²ã解é€ããŠãã ããã
æ©èœãšä¿®æ£ãéçºããããã«ãããå¯ä»ããŸããã
@ BradleyDS2ã³ãã¥ããã£ã«
æªè§£æ±ºã®åé¡ã«è²¢ç®ãã解決çãæäŸããããšãæè¿ããŸã
ããã¯å²æ ¢ãªèãã§ãã ã»ãšãã©ã®ãŠãŒã¶ãŒã¯äœãã§ããŸãããæå¥ãèšããŸããïŒ ããªãã®ã¢ã«ãŠã³ããèŠãŠãã ããã ã©ã®ãããžã§ã¯ãã«ã1è¡ã®ã³ãŒããæäŸããŠããŸããã ããã¯ããªããã©ããªãããžã§ã¯ãã«ãæºè¶³ããŠããããã§ããïŒ ãããšããgithubã¯åé¡ã®ããŒãžãåé€ããŠããã«ãªã¯ãšã¹ããä¿æããå¿ èŠããããšæããŸããïŒ
ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã¯ãã³ãã¥ããã£ã«è³ãåŸããªããšãŠãŒã¶ãŒã倱ããŸãã ç§ãåã«äºå®ãè¿°ã¹ãã ãã§éé£ãããã¹ãã§ããã®ã¯å¥åŠã§ãã
ã»ãšãã©ã®ãŠãŒã¶ãŒã¯äœãã§ããŸãããæå¥ãèšããŸããïŒ
å¯ä»ããã«ãªã¯ãšã¹ãã建èšçãªãã£ãŒãããã¯ã ããŒã ã«è²¢ç®ããããã«äœãããŠã»ããããå°ããŸãã
ããªããèšã£ãããšã«ã€ããŠã¯ãç§ã¯ããªãèªèº«ã®èšèã®ããã€ããè¿çãšããŠã€ãªãåãããŸãã
ã©ãããŠããèšããã®ã§ãã
ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã®å«ç
ããã¯å²æ ¢ãªèãã§ã
ããŒã ã¯äžçæžåœåããŠããŸããããªããç¹ã«æãã§ããããšãè¡ãããŠããªããããšãã£ãŠã圌ãã®åªåãæžãããšã¯ãããŸããã建èšçã§ãããããªããäžå¹³ãèšãããã ãã«ããã«ããã®ãªããå»ã£ãŠãã ããã 誰ããã®æ¯æ§ãå¿ èŠãšããŸããã
圌ãã¯ã³ãã¥ããã£ã«è³ãåŸããåé¡ã«åªå é äœãä»ããŸãã ããã¯ãéããŠããæéã®å€§éšåã§æåéãäœæ¥ã§ãã人ãããªãã£ããããéåžžã«æéãããããŸããã
圌ãã¯ã³ãã¥ããã£ã«è³ãåŸããåé¡ã«åªå é äœãä»ããŸã
@ BradleyDS2ã§ã¯ã2000以äžã®
ç§ã¯ãªãŒãã³ãœãŒã¹éçºè ã§ãããæ°åã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã«è²¢ç®ããŠããŸããã ããªãã¯äœãããïŒ ããªããããã€ãã®ãããžã§ã¯ãã«è²¢ç®ããŠããã®ãèŠãŠããŸãããããªãã話ããŠããã ãã®ããã§ãã
ç§ã¯qbittorrentã§äœãããŸããã§ããã æ°ãæåã«dockerfileãªã¯ãšã¹ããéå§ããŸããããæåŠãããŸããã
ããªãã¯ãã äžã€ã®ããšã«ã€ããŠæ£ããã£ãã ç§ã¯è¡ããŸãã
圌ãã¯ã³ãã¥ããã£ã«è³ãåŸããåé¡ã«åªå é äœãä»ããŸã
@ BradleyDS2ã§ã¯ã2000以äžã®
ç§ã¯6500+ãéããŠããããšãæããŸãã
ç§ã¯ãªãŒãã³ãœãŒã¹éçºè ã§ãããæ°åã®ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã«è²¢ç®ããŠããŸããã ããªãã¯äœãããïŒ ããªãããããžã§ã¯ãã«è²¢ç®ããŠããã®ãèŠãŠããŸãããããªãã話ããŠããã ãã®ããã§ãã
ç§ã¯ä»¥åã«ãããžã§ã¯ãã®ãã«ãªã¯ãšã¹ãã確å®ã«è¡ã£ãããšãããã®ã§ãäœãã足ããªãã¯ãã§ãããç§ã¯äž»ã«gitlabã䜿çšããŠããŸãã
ç§ã¯qbittorrentã§äœãããŸããã§ããã æ°ãæåã«dockerfileãªã¯ãšã¹ããéå§ããŸããããæåŠãããŸããã
ããªããšç§ã¯äž¡æ¹ãšããããæåŠãããçç±ãç¥ã£ãŠããŸãã æ³å®éç¥ãèªåçã«åãå ¥ããããã«èšå®ãããŠãããéçºè ã¯ãçŸåšãæ£åŒã«ãããç¶æããèœåã¯ãªããšæããŸãããšè¿°ã¹ãŸããã
ããæ°å¹ŽãŸã å®è£ ãããŠããªãå¯äžã®çç±ã¯ãqBittorrentãããžã§ã¯ãã®ããŒã ã«ã¢ã¯ãã£ã/ããŒããã³ãã®Webéçºè ãããªãããšã§ãã ãã®çç±ã¯ããã§äœåºŠãèšåãããŠããã®ã§ããããç解ããŠããªã人ã¯èªåã®ç²Ÿç¥çèœåã«ã€ããŠçå£ã«èããå¿ èŠããããŸãã
ãã¹ã¿ãŒãã©ã³ãã§4.2ã®ãµããŒããä¿®æ£ããŸãã
https://github.com/AndersMalmgren/qBittorrent/tree/master
æŽæ°ãã£ãŒãããµããŒããããããã«ãªããŸããã ãã£ãŒãåã®æšªã«ããå°ããªæŽæ°ã¢ã€ã³ã³ãã¯ãªãã¯ããŸã
RSSèªåããŠã³ããŒãæ©èœã¯ä»£æ¿UIãå¿ èŠãšããã«å®è£ ããããšæããŸããããããã§ã¯ãããŸãããïŒ å°ãªããšãããã¹ã¿ãŒãã©ã³ããæ§ç¯ããåŸãwebUIããèªåããŠã³ããŒãã«ãŒã«ã«ã¢ã¯ã»ã¹ããæ¹æ³ãããããŸããã
ãã¹ã¿ãŒãã©ã³ãã§4.2ã®ãµããŒããä¿®æ£ããŸãã
https://github.com/AndersMalmgren/qBittorrent/tree/master
æŽæ°ãã£ãŒãããµããŒããããããã«ãªããŸããã ãã£ãŒãåã®æšªã«ããå°ããªæŽæ°ã¢ã€ã³ã³ãã¯ãªãã¯ããŸãRSSèªåããŠã³ããŒãæ©èœã¯ä»£æ¿UIãå¿ èŠãšããã«å®è£ ããããšæããŸããããããã§ã¯ãããŸãããïŒ å°ãªããšãããã¹ã¿ãŒãã©ã³ããæ§ç¯ããåŸãwebUIããèªåããŠã³ããŒãã«ãŒã«ã«ã¢ã¯ã»ã¹ããæ¹æ³ãããããŸããã
qbittorrentã®ãã«ãããã»ã¹ãã©ã®ããã«æ©èœãããã¯ããããŸãããããã¡ã€ã«ã¯ããã«ããã®ã§ããã«ãã«å«ããå¿ èŠããããšæããŸãã
ããããç§ã¯å¥ã®UIã¡ãœããã䜿çšããŸã
@AndersMalmgrenããŠã httpsïŒ //github.com/qbittorrent/qBittorrent/issues/453#issuecomment -483063942ã§æ瀺ãããŠããããã«ãqbittorrentããã«ãããŠåäœããããœãŒã¹ã䜿çšããŠãããäžåºŠãããŸããã å€æŽã¯ãœãŒã¹ã³ãŒãã«å«ãŸããŠããŸããããã«ãèªäœã«ã¯å«ãŸããŠããªãã®ã¯ããããã§ãã
@AndersMalmgrenããŠãç§ãqbittorrentãæ§ç¯ããŠåäœããããœãŒã¹ã䜿çšããŠã ïŒ453ïŒã³ã¡ã³ãïŒã§æ瀺ããããšããã«ããäžåºŠå®è¡ããŸããã å€æŽã¯ãœãŒã¹ã³ãŒãã«å«ãŸããŠããŸããããã«ãèªäœã«ã¯å«ãŸããŠããªãã®ã¯ããããã§ãã
ãã¶ããã©ããã«rss.jsãè¿œå ããªããã°ãªããªããªã¹ãããããšæããŸã:)
@AndersMalmgrenããŠãç§ãqbittorrentãæ§ç¯ããŠåäœããããœãŒã¹ã䜿çšããŠã ïŒ453ïŒã³ã¡ã³ãïŒã§æ瀺ããããšããã«ããäžåºŠå®è¡ããŸããã å€æŽã¯ãœãŒã¹ã³ãŒãã«å«ãŸããŠããŸããããã«ãèªäœã«ã¯å«ãŸããŠããªãã®ã¯ããããã§ãã
RSSæ©èœã䜿çšããããã«@AndersMalmgrenãã©ãŒã¯ã䜿çšããŠãã¹ãŠãåæ§ç¯ããå¿
èŠã¯ãããŸããïŒç§ãã¡ã¯ç圌ã«æè¬ããŸã:-)
圌ã®ãã¹ã¿ãŒãœãŒã¹ã³ãŒããzipãšããŠååŸããWebãã©ã«ããŒãæœåºããŠãå
¬åŒã®qBtãã«ãAltWebUIèšå®ããã®ãã©ã«ããŒã«ãã€ã³ãããã ãã§ãã ããã¯ãã¹ãŠæ©èœããŸãã
@WolfganP @Ingvixãæ£ããããšãç解ããŠããã°ã圌ã¯ãœãŒã¹ããã€ããªã«çµã¿èŸŒã¿ããã®ãã€ããªã«ã¯ç§ã®å€æŽãå«ãŸããŠããŸããã§ããã
ããããããªãã¯æ£ããã§ããç§ã®å€æŽãæšæºã®ãã€ããªã§äœ¿çšããã«ã¯ã代æ¿ã®WebUIã¡ãœããã䜿çšããå¿ èŠããããŸãã
ã³ãŒããèŠããšãAPIã¯ãã§ã«ãã«ããããŠããããã§ãããUIã ããèšè¿°ããå¿ èŠããããŸããïŒ https://github.com/qbittorrent/qBittorrent/blob/master/src/webui/api/rsscontroller.cpp
ç§ã¯ããããã®c ++ãç¥ããŸããããjsã¯ç¥ã£ãŠããã®ã§ãäœãããŸãšããããšãã§ããŸã
@ljmerzaãµããŒããããŠããç§ã®ãã©ã³ãããã§ãã¯ã¢ãŠãã§ããŸã
@ljmerzaãµããŒããããŠããç§ã®ãã©ã³ãããã§ãã¯ã¢ãŠãã§ããŸã
4.2.1ã§ã¯ã©ã®ãã©ã³ãã䜿çšããå¿ èŠããããŸããïŒ
@ljmerzaãµããŒããããŠããç§ã®ãã©ã³ãããã§ãã¯ã¢ãŠãã§ããŸã
4.2.1ã§ã¯ã©ã®ãã©ã³ãã䜿çšããå¿ èŠããããŸããïŒ
ç§ã®ãªããžããªã®v4_2_xãã©ã³ãã¯ã4.2.xããµããŒãããããã«æŽæ°ãããŠããŸã
@ljmerzaãµããŒããããŠããç§ã®ãã©ã³ãããã§ãã¯ã¢ãŠãã§ããŸã
4.2.1ã§ã¯ã©ã®ãã©ã³ãã䜿çšããå¿ èŠããããŸããïŒ
ç§ã®ãªããžããªã®v4_2_xãã©ã³ãã¯ã4.2.xããµããŒãããããã«æŽæ°ãããŠããŸã
ãã¹ã¿ãŒã§RSSWebUIãµããŒããååŸããããã®ãã«ãªã¯ãšã¹ããèšç»ããŠããŸããïŒ
@AndersMalmgrenãã«ãªã¯ãšã¹ããéããŠãå€æŽããã®ãªããžããªã«ããŒãžã§ããŸããïŒ
@AndersMalmgrenãã«ãªã¯ãšã¹ããéããŠãå€æŽããã®ãªããžããªã«ããŒãžã§ããŸããïŒ
ã§ããŸããããããŒã ãããããã«ããããã©ããã¯ããããŸãããUIã®ä»ã®éšåã®ããã«ã¯æ©èœãããã³ãŒãã«å¯ŸããŠããŸãåªããèšèšäœæ¥ãè¡ããªãã£ããããèªåã§äœ¿çšããããã«ãã°ããæ©èœãããã®ãå¿ èŠã§ãã:)
@AndersMalmgrenãã«ãªã¯ãšã¹ããéããŠãå€æŽããã®ãªããžããªã«ããŒãžã§ããŸããïŒ
ç§ã¯ãã®åããæ¯æããŸãã
ç§ã¯ããã°ã©ãã³ã°ã®ç¥èããªãïŒã³ããŒã¢ã³ãããŒã¹ãã®ã¿ïŒã代æ¿WUIã䜿ãããšãããšãåžžã«å£ããŠããŸããæåããæ»ããªããã°ãªããŸããã
ãããããã©ã«ãã§WUIã«ãªããšãç§ã®ãããªäººã
ã¯ãã®RSSæ©èœãå©çšã§ããŸãã
altWebUIãå®è£ ãããŠãããããã³ãŒããããŒãžããŠWebUIæ©èœã®ãªãªãŒã¹ãåŸ ã€å¿ èŠã¯ãããŸããïŒWebAPIãå€æŽãããŠããªãå ŽåïŒã æ¢åã®ããŒã«ã䜿çšããŠã @ AndersMalmgrenãŸãã¯ä»ã®éçºè ã«ããWebUIã®å€æŽãååŸããå ¬åŒã®qBtãæ§æããã°ãæºåã¯å®äºã§ãã
ã€ãŸããgithubãããœãŒã¹ããªãŒã®äžéšã ããããŠã³ããŒãããã«ã¯ãhttpsïŒ//minhaskamal.github.io/DownGitã䜿çšããŸã
ç¹ã«@AndersMalmgrenRSSmodãæŽæ°ããhttps://minhaskamal.github.io/DownGit/#/homeïŒurl = httpsïŒïŒ
2FïŒ
2Fgithub.comïŒ
2FAndersMalmgrenïŒ
2FqBittorrentïŒ
2FtreeïŒ
2FmasterïŒ
2FsrcïŒ
2FwebuiïŒ
2Fwwwããã³æ¬¡ã«ãããã€ãã®ãã©ã«ããŒã§zipãå±éãã httpsïŒ//github.com/qbittorrent/qBittorrent/wiki/Alternate-WebUI-usageã®æ瀺ã«åŸã£ãŠaltWebUIãšããŠäœ¿çšã
äœãééã£ãŠããã®ãããããŸããã
ãªã³ã¯ã¯ãWebUIèšå®ãå€æŽãããšãã«Chromeã§ååŸãããã®ã§ãã
https://mega.nz/#!c9hTgYKa!2q4agsrwv787vwCre -as4IKog1lGQLTBAsGsMfDTeAo
ãããŠããã¯ã¢ã€ã³ã³ä»ãã®ç§ã®wwwãã©ã«ãã§ã
https://mega.nz/#!AtoFFKhJ!q8RiQQdV2oYBHMhbcqnpmiUZ3cQFSKYltUiDRZCGY0E
ããã¯ç§ã®WebUIæ§æã§ã
WebUI \ Address = *
WebUI \ AlternativeUIEnabled = true
WebUI \ AuthSubnetWhitelist = @ Invalid ïŒïŒ
WebUI \ AuthSubnetWhitelistEnabled = false
WebUI \ CSRFProtection = true
WebUI \ ClickjackingProtection = true
WebUI \ Enabled = true
WebUI \ HTTPS \ Enabled = false
WebUI \ HostHeaderValidation = true
WebUI \ LocalHostAuth = false
WebUI \ Password_ha1 = xxxxx
WebUI \ Port = 1340
WebUI \ RootFolder = / mnt / Share / www /
WebUI \ ServerDomains = *
WebUI \ UseUPnP = true
WebUI \ Username = xxxx
誰ãå©ããŠããããŸããïŒ
@Piocasãã®åé¡ã®ã¹ã¬ããã¯ã å ¬åŒã®qBittorrentãã©ãŒã©ã ã«åç §ããŠãã ããã
ããã¯çŽ æŽãããæ©èœã§ãã
7幎ãçµéããã®ãèŠãŠæ²ããã§ãããããã¯å®è£ ãããŠããŸããã ã¡ãã£ãšã¯ã¬ã€ãžãŒã§ãã
altWebUIãå®è£ ãããŠãããããã³ãŒããããŒãžããŠWebUIæ©èœã®ãªãªãŒã¹ãåŸ ã€å¿ èŠã¯ãããŸããïŒWebAPIãå€æŽãããŠããªãå ŽåïŒã æ¢åã®ããŒã«ã䜿çšããŠã @ AndersMalmgrenãŸãã¯ä»ã®éçºè ã«ããWebUIã®å€æŽãååŸããå ¬åŒã®qBtãæ§æããã°ãæºåã¯å®äºã§ãã
ã€ãŸããgithubãããœãŒã¹ããªãŒã®äžéšã ããããŠã³ããŒãããã«ã¯ãhttpsïŒ//minhaskamal.github.io/DownGitã䜿çšããŸã
ç¹ã«@AndersMalmgrenRSSmodãæŽæ°ããhttps://minhaskamal.github.io/DownGit/#/homeïŒurl = httpsïŒïŒ 2FïŒ 2Fgithub.comïŒ 2FAndersMalmgrenïŒ 2FqBittorrentïŒ 2FtreeïŒ 2FmasterïŒ 2FsrcïŒ 2FwebuiïŒ 2Fwwwããã³æ¬¡ã«ãããã€ãã®ãã©ã«ããŒã§zipãå±éãã httpsïŒ//github.com/qbittorrent/qBittorrent/wiki/Alternate-WebUI-usageã®æ瀺ã«åŸã£ãŠaltWebUIãšããŠäœ¿çšã
ããã¯ç§ã«ãšã£ãŠã¯ããŸããããŸãããããã¹ãæ£ããååŸãããšãæåã¯å°ããªã«ãŒããçºçããŸããã ãããã«ãããããã¯ãã§ã«å®è£ ãããŠããã®ã§ãç§ïŒãŸãã¯èª°ãïŒããããã®å€æŽãã¢ããã¹ããªãŒã ã«ããŒãžããã®ãã©ã®ããã«å©ããããšãã§ããŸããïŒ
確èªã®ããã«ãUIã§ã¯å¶åŸ¡/ç·šéæ©èœã®ã¿ã䜿çšã§ããŸãããïŒ RSSãã£ãŒãã¯åŒãç¶ãããŠã³ããŒããããªã¬ãŒããŸããïŒ
+1 RSSæ©èœãqbittorrent-noxã«è¿œå ããŠãXãŠã£ã³ããŠã®qBittorrentãšåçã®æ©èœãæã€ããã«ããŠãã ããã
qbittorrent-noxã«ã¯RSSæ©èœããããUIãæäŸããªãã®ã¯Webããã³ããšã³ãã§ãã
ã ããä»ããªãã¯ããã管çããããã®ã€ã³ã¿ãŒãã§ãŒã¹ãå¿ èŠã§ãã
ã ããä»ããªãã¯ããã管çããããã®ã€ã³ã¿ãŒãã§ãŒã¹ãå¿ èŠã§ãã
WebAPIãžã®HTTPãªã¯ãšã¹ãã§ãã§ã«å¶åŸ¡ã§ããŸãã ããããWebUIãå éšã§è¡ãããšã§ãã ãªã¯ãšã¹ããè¡ãã®ã¯ãã¿ã³ã®éãŸãã§ãã
ãããã£ãŠãWebUIãæŽæ°ãããŠã°ã©ãã£ã«ã«ãªæ¹æ³ãæäŸããããŸã§ã¯ããã€ã§ãã¹ã¯ãªãããªã©ã䜿çšããŠãªã¯ãšã¹ããè¡ãããšãã§ããŸãã
ãŸãã¯ãæåéãèªåã§ã€ã³ã¹ããŒã«ããŸãhttps://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -600877487
RSSæ©èœãå®è£ ããå¥ã®ä»£æ¿webUIhttps ïŒ//github.com/CzBiX/qb-web
RSSæ©èœãå®è£ ããå¥ã®ä»£æ¿webUIhttps ïŒ//github.com/CzBiX/qb-web
ãããããã©ã«ãã®webUIã ã£ããããã®ã«ïŒ ããã©ã«ãã®ãã®ãããã£ãšè¯ãã§ãïŒ
RSSæ©èœãå®è£ ããå¥ã®ä»£æ¿webUIhttps ïŒ//github.com/CzBiX/qb-web
ãããããã©ã«ãã®webUIã ã£ããããã®ã«ïŒ ããã©ã«ãã®ãã®ãããã£ãšè¯ãã§ãïŒ
ãã®ããããŠãŒã¶ãŒãã³ã¢ã«è§ŠããããšãªãUIæ©èœãã«ã¹ã¿ãã€ãºã§ããããã«ã代æ¿WebUIïŒããã³æè¿ã§ã¯Qt UIãã³ãã¬ãŒãã®ãã®ïŒãå®è£
ãããŸããã
ã³ã¢ã³ãŒãã®å€æŽã¯ãäžéšã®ïŒã³ãã¥ããã£ãç¡æã®ïŒéçºè
ããããæ°žä¹
ã«ç¶æããå¿
èŠãããããšãæå³ããããšãèŠããŠãããŠãã ãã...
次ã®çç±ã§ããã®åé¡ãä»ãã解決ããããšæããŸãã
+1
/ me too
/ pleeeeease
/ i've waited 58 years instead of contributing in any way whatsoever to the project besides this disrespectful and ungrateful comment, why is this not done yet?
æçš¿ããããããããäŒè©±å
šäœãä¹±éã«ãªã£ãŠããŸãããããéãããšã2ã€ã®æ°ããã¹ã¬ãããéããŸãã
+1
ã³ã¡ã³ãã¯å¿
èŠãããŸããããã ããªã¢ã¯ã·ã§ã³ã䜿çšããŠãã ããã誰ããè¿œå ã®æžå¿µãããå Žåã¯ãç§ã«ç¥ãããŠãã ããã
çæ§ããã®ãã£ãŒãããã¯ã«æè¬ããŸãã
éçºãã£ã¹ã«ãã·ã§ã³ã¹ã¬ãããã¢ããããŠããŸãïŒ https ïŒ
ãã©ããŒã¢ããæ©èœã®ãªã¯ãšã¹ããhttps://github.com/qbittorrent/qBittorrent/issues/12355ã§ã¢ããããŠã
æãåèã«ãªãã³ã¡ã³ã
次ã®çç±ã§ããã®åé¡ãä»ãã解決ããããšæããŸãã
+1
/me too
/pleeeeease
/i've waited 58 years instead of contributing in any way whatsoever to the project besides this disrespectful and ungrateful comment, why is this not done yet?
æçš¿ããããããããäŒè©±å šäœãä¹±éã«ãªã£ãŠããŸãããããéãããšã2ã€ã®æ°ããã¹ã¬ãããéããŸãã
+1
ã³ã¡ã³ãã¯å¿ èŠãããŸããããã ããªã¢ã¯ã·ã§ã³ã䜿çšããŠãã ããã誰ããè¿œå ã®æžå¿µãããå Žåã¯ãç§ã«ç¥ãããŠãã ããã