Qbittorrent: التحكم / تحرير موجزات RSS من Web UI

تم إنشاؤها على ٢٥ فبراير ٢٠١٣  ·  281تعليقات  ·  مصدر: qbittorrent/qBittorrent

لديّ qbittorrent يعمل على OpenSUSE 12.2 الذي استخدمته لإعداد موجزات RSS لتنزيل التورنت تلقائيًا واستخدمت هذا المربع كخادم وسائط لمنزلي. يمكنني ضبط كل شيء تقريبًا من خلال جلسة ssh أو عبر واجهة مستخدم الويب. سيكون من الجيد أن تكون قادرًا على التحكم في موجز ويب RSS لـ qbittorrent دون الحاجة إلى ssh -Y في المربع وسحب واجهة المستخدم الرسومية وإجراء التعديلات. من الناحية المثالية ، أريد استخدام واجهة مستخدم الويب من جهاز iPAD الخاص بي وضبط موجز ويب RSS ، فهل يمكن إضافة هذه الميزة إلى واجهة مستخدم الويب؟
شكر
جدافيس 3980

Feature request Help wanted RSS WebUI

التعليق الأكثر فائدة

أنا أميل إلى إغلاق هذه المشكلة الآن للأسباب التالية:

  • استمرت المحادثة لفترة طويلة جدًا وبعيدًا عن الموضوع. على الرغم من أن بعض الأشياء الجيدة جاءت من ذلك ، فمن المفترض أن تكون هذه البطاقة حول دعم RSS في WebUI الرسمي. إنه طلب ميزة بسيط وواضح ، وليس مكانًا للعديد من الأشياء الموجودة هنا.
  • هناك الكثير من مشاركات +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? منشورات تزدحم المحادثة بأكملها.
  • نظرًا لأن الوظيفة التي طلبها متاحة الآن عبر WebUIs بديلة ، فإن الشيء المعقول الوحيد الذي لم تتم معالجته هو دعم هذا في الوظيفة الرسمية.

عندما أغلق هذا ، سأفتح موضوعين جديدين:

  • واحد لتتبع تنفيذ هذه الميزة في WebUI الرئيسي (والتركيز حصريًا على ذلك). لا حاجة لتعليقات +1 إذا كنت تريد فقط أن تقول "نعم ، أريد هذا أيضًا" ، فقط استخدم ردود الفعل.
  • واحد يسمى "مناقشة تطوير WebUI البديل" أو ما شابه ذلك للأشخاص لمناقشة تطوير WebUI البديل بحرية في مكان مركزي.

إذا كان لدى أي شخص مخاوف إضافية ، أخبرني.

ال 281 كومينتر

+1 برجاء إضافة إمكانيات RSS إلى qbittorrent-nox بحيث يتطابق مع ميزات qBittorrent مع نوافذ X.

+1

+1 على windows ل

+1

+1

+1

buinsky لقد رأيت أنك عملت في واجهة الويب. يبدو أن هذه الميزة يمكن أن تكون مفيدة.

+1

ربما تكون هذه الميزة المفقودة بمثابة كسر للصفقات للأشخاص الذين يهاجرون من uTorrent. كل شيء آخر رائع بل وأفضل.

شكرا لك وحافظ على العمل الجيد :)

+1
هل ترغب في رؤية هذا يحدث.

+1

+1 وفقًا للمنشور أعلاه ، يعد هذا بمثابة كسر للصفقة بالنسبة لي. هل ترغب في رؤية ذلك يحدث.

+1
الاضطرار إلى التمسك بـ uTorrent bloatware بسبب هذا

+1 من فضلك - أفضل عميل مقطوع الرأس وجدته حتى الآن ، وهذا سيجعله مكتملًا.

+1

+1. هذا من الممكن ان يكون مفيد جدا.

رجاء! +1

الرجاء إضافة هذه الميزة! +1

+1 لهذه الميزة

+1
مفقود منذ البداية

+1
هذا سيجعلني أتحرك من برنامج utorrent

+1
أنا عالق بدون هذا الآن

+1

+1

+1

نعم ، سأحب تمامًا الحصول على هذه الميزة! يمكن التحكم من وسادة العين ثم :-). : +1:

+1 بحاجة إلى واجهة مستخدم ويب مع RSS للخادم مقطوع الرأس.

+1

+1

+1

+1

+1

+1

+1

+1

+1

ثلاث سنوات ، وما زلت لا يوجد دعم لتغذية RSS في النسخة مقطوعة الرأس؟ على الرغم من أن إصدار Windows رائع ، إلا أن هذا أمر محبط.

ربما يمكن لشخص ما إعطائي مؤشرات حول تحرير .conf؟ أنا لا أعارض ذلك أيضًا ، لكنني ما زلت أرغب في رؤية واجهة المستخدم تتبع ذلك.

حاولت تحرير الملف باستخدام بعض الترميزات المختلفة لمسارات الحفظ ولم أتمكن من تشغيله. انتهى بي الأمر إلى استخدام Flexget بدلاً من ذلك.

+1

+1

أرغب في الترحيل بعيدًا من خادم uTorrent وهو مصدر مغلق ولا يبدو أنه تم تطويره بنشاط ، لكن هذا هو الشيء الوحيد الذي يمنعني

+1

+1

حسنًا ، ذهبت في النهاية مع Flexget: يمكن تشغيله بدون رأس ، مع الاستمرار في تقديم الميزات التي أحتاجها.

قد يستبعد ذلك القدرة على الاعتماد تلقائيًا على روابط المغناطيس.

+1

+1

+1 (والفرز عبر التواريخ المضافة والمكتملة لا يضر)

يوم السبت ، 25 يونيو 2016 ، 5: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 على هذا. تشغيل مربع torrent / PleX مقطوع الرأس وهذا من شأنه أن يكمله.

+1

+100!

نعم ، +1 بالنسبة لي.

رائع ، لقد أمضيت ساعة في البحث عن هذا الخيار لتشغيله في config / etc فقط لتكتشف أن qbtorrent nox لا يدعمه. قرف. :خائب الامل:

باستخدام Sonarr في الوقت الحالي ، وهو كامل الميزات ، لكنني كنت أبحث عن شيء خفيف الوزن ومتكامل

+1

+1

مندهش لم تتم إضافة هذا بعد 4 سنوات. لا عجب أن الجميع يستخدم rTorrent.

+1 OMG هذا أمر سخيف حقًا ، لنجعل qBittorent عميلاً جيدًا ومرنًا حقًا

قد (ينبغي) تنفيذ نوع من WebAPI المتعلق بـ RSS كجزء من # 6505.

لقد بدأت في تنفيذ دعم RSS في WebUI. لكن لا يمكنني إكمال هذا العمل بسبب مضادات الاكتئاب التي أتناولها.

@ qbittorrent / webdev
ربما يمكن أن يساعد شخص ما في تنفيذ دعم RSS في WebUI. الكود الخاص بي موجود هنا:

https://github.com/buinsky/qBittorrent/tree/rss

+1

+1

+1

قام شخص آخر بإضافة +1 بعد سنوات عديدة.

+1

من المحتمل أن ينتهي +1 بكتابة شيء لتحليل موجز RSS وكز واجهة برمجة التطبيقات بنفسي بهذا المعدل ...

buinsky ، ما زلت لا تستطيع إكمال عملك حول هذا؟

glassez لا أستطيع للأسف.

أنا حقًا أقدرglassez لمحاولة إصلاح هذه المشكلة. هل هناك جدول زمني تقريبي يمكنك إعطائنا إياه بشأن تنفيذ الإصلاح وإصدار qBittorrent الذي من المحتمل أن يكون لديه الإصلاح؟

+1

+1

+1

+1

+1

+1 مزعج الحاجة إلى التحكم عن بعد في الخادم الخاص بي من أجل الشيء الوحيد المطلوب ... تغييرات rss. عميل رائع خلاف ذلك!

لم يلاحظ +1 أن هذا لم يكن شيئًا. :( بالتأكيد أريد ذلك!

الرجاء تنفيذ هذه الميزة!

للأسف ، المشروع ليس لديه مطور ويب نشط في الوقت الحالي ...

+1
رأيت الصفحة الرئيسية qbittorrent وانتقلت مباشرة لتثبيت header-less

  • التحكم عن بعد من خلال واجهة مستخدم الويب ، مكتوبة باستخدام AJAX
    - متطابق تقريبًا مع واجهة المستخدم الرسومية العادية

لا يقول هذا النص أن هناك وظائف مفقودة ، فقط أن واجهة المستخدم الرسومية ليست هي نفسها تمامًا.

هل هناك أي دليل لتشغيل خدمة RSS في qbittorrent عبر SSH؟

+1

+1!
كيف هذا ليس هناك بعد؟

لأن كل من يهتم بهذا لم ينفذه بعد. أعتقد أن طلبات السحب مرحب بها.

حسنًا ، أثناء انتظار الأشخاص ، أود أن أشير إلى أن خادم utorrent الخاص بـ linux 3.3_alpha يحتوي على مكون rss في webUI

ومع المجتمع 0.83 webui ، فإنه يتميز بكامل ميزاته (يفتقر webui للمخزون إلى بعض الأشياء)

واجهة برمجة تطبيقات الويب المناسبة قيد التطوير الآن. آمل أن يتم إصداره مع التحديث الأول لفرع 4.0.x.
بالنسبة إلى Web UI لذلك ، لا يمكنني جدولة إصداره نظرًا لعدم وجود مطور ويب نشط.

انتقلت للتو إلى Rockstor NAS وأدركت أنه لا يمكن استيراد تكوين RSS الخاص بي من واجهة الويب. أوتش ...

+1! اشتريت للتو Netgear NAS وهذه الميزة مطلوبة حقًا في إصدار web-ui!

+1

+1

+1

+1

هذا نوع من الحل إذا كنت بحاجة إلى حل بديل.
https://askubuntu.com/questions/498232/using-rss-in-qbittorrent

+1

يحتوي qBittorrent v4.1 على واجهة برمجة تطبيقات تجريبية لإدارة RSS. انظر هنا .

هل سنرى هذا قريبًا مدعومًا؟ أدير qbittorent كخدمة. إنه أمر مزعج حقًا أنني بحاجة إلى إيقاف تشغيل الخدمة وبدء تشغيلها على سطح المكتب لإدارة تنزيلات RSS

هل سنرى هذا قريبًا مدعومًا؟

ألم تلاحظ تعليقي السابق؟ أو تقصد Web UI؟

أعني واجهة مستخدم الويب ، ولكني أعمل على حقن طريقة عرض لهذا باستخدام tamper monkey لـ Chrome ، فابق على اتصال

إذن ها هو ، يتطلب Tampermonkey لـ Chrome. إنها غير مجربة للغاية ، لا تلومني إذا تجاوزت قواعدك أو ما شابه ذلك.

// ==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)
})();

يبدو أن استدعاء setRule مع بعض عناوين url الخاصة بالخلاصات المتأثرة يربك qbitTorrent ، فهو لا يحفظ الخلاصة المتأثرة في القاعدة ، كما أنه يتيح القاعدة على الرغم من أنني اخترت عدم القيام بذلك.

عنوان Url (طريقة تحرير البيانات الشخصية)

" https://xxx.org/rss/feed؟passkey=xxxx&feed=dl&type_origin=1&cats [] = 1c1c3 & cats [] = 1c1c6 & cats [] = 2c1c3 & cats [] = 2c1c6"

لقد قمت بتحديث البرنامج النصي أعلاه لمراعاة السلوك / الأخطاء غير المتوقعة مع واجهة برمجة التطبيقات الحالية.
كذلك لا تقم بإعادة تجميع موجز ويب الخاص بك ، واحتفظ بالاسم متزامنًا مع عنوان URL

مرحبا! بادئ ذي بدء ، شكرا أندرس على السيناريو. لكنني جربته وربما فعلت شيئًا خاطئًا لأن كل ما أراه هو "RSS" برتقالية في القائمة العلوية (انظر لقطة الشاشة) ، عندما أنقر على هذه النافذة المنبثقة التي لا تتيح لي فعل أي شيء ... ماذا يفترض بنا أن نرى وأين؟ لم أجد أي شيء آخر. (راجع للشغل ، عندما أنقر على "إضافة" لا يحدث شيء ، وتكون القائمة المنسدلة فارغة وغير قابلة للتعديل)

شكرا لك مقدما!

image

مرحبا jadazul شكرا.

يجب أن يبدو
Rss

تم اختباره مقابل v4.1.1 Web UI

قد تحتاج إلى تحديد موجز لكي يعمل ، فهو واجهة مستخدم فقط للقواعد. إذا كان لديك موجز RSS ولكن لا توجد قواعد تحتاج إلى الضغط على إضافة ويمكنك ملء الحقول. على الرغم من وجود خطأ في 4.1.1 ، لذا لا يمكنك حفظ القواعد التي تحتوي على موجزات URL طويلة مثل المثال الذي قدمته في المنشور أعلاه

على الرغم من وجود خطأ في 4.1.1 ، لذا لا يمكنك حفظ القواعد التي تحتوي على موجزات URL طويلة مثل المثال الذي قدمته في المنشور أعلاه

هل أنت متأكد من أن النص البرمجي يرسل عنوان URL للخلاصة بنفس التنسيق الذي استخدمته عند إضافة موجز في qBittorrent؟

تضمين التغريدة

أستخدم عنوان URL الذي تم إرجاعه من

api / v2 / rss / العناصر

شكرا مرة أخرى AndersMalmgren

عندما قمت بتثبيت qBittorrent-nox في خادم Ubuntu بدون رأس ، لم أتمكن من العثور على طريقة لإضافة موجز RSS واحد ... قرأت Wiki لواجهة برمجة التطبيقات ، ولكن لا توجد أمثلة كثيرة عن كيفية القيام بذلك ... حاولت استخدام curl في محطة ssh ، وتسجيل الدخول وإعطائي ملف تعريف ارتباط ، ولكن لا يمكنني استخدام / api / v2 ، وهذا لا يعمل ، أحصل على خطأ 404 في كل مرة ولم أتمكن من العثور على أي مثال عن كيفية ذلك قم بذلك بشكل صحيح ، لذا فقد استسلمت وجربت البرنامج النصي الخاص بك (لكنني الآن أفهم أنه فقط لإدارة الخلاصات الحالية).

هل هناك أي طريقة لإضافة الخلاصة حتى أتمكن من استخدام البرنامج النصي الخاص بك لإدارته لاحقًا؟ حتى لو تم تعديل بعض ملفات التكوين يدويًا ، فأنا فقط بحاجة إلى إيجاد طريقة للقيام بذلك ...

شكرا لك مرة أخرى!

يمكنني النظر فيه لاحقًا ، لقد قمت به للتو لدعم حالة الاستخدام الخاصة بي والتي تضيف قواعد إلى الخلاصات الحالية

تحرير: هل قمت بفحص وحدة التحكم بحثًا عن أخطاء

آسف ، لقد رأيت للتو تعديلك عند التحقق من هذا.

في كل مرة أحاول استخدام curl ، أحصل فقط على الخطأ 404 وليس الكثير من التفاصيل ...

هل أنت على 4.1.1؟ تمت إضافة RSS API في 4.1

نعم ، لقد قمت بتثبيت qBittorrent-nox v4.1.1 على خادم Ubuntu بدون رأس 18.04

تحرير: سكراتش ، لقد تحققت للتو وحتى اعتقدت أن لدي الإصدار الأخير (لأنني استخدمت apt-get من Ubuntu ، افترضت أنه الإصدار الأخير) ، لقد قمت بتثبيت الإصدار 4.0.3 بدلاً من ذلك ... سأحاول تثبيت أحدث إصدار قريبًا. شكرا للمساعدة علي أي حال!

لا تزال setRule لا تعمل في 4.1.2

+1

ما زالت setRule لا تعمل في 4.1.3 ، هنا مقطع فيديو قمت بإنشائه ، يمكنك أن ترى أنه يسير بشكل خاطئ عندما أحاول تعيين عنوان url للخلاصة

https://youtu.be/t_w9epoyxC8

AndersMalmgren تذكر أنه يمكنك إدراج جانب خادم تحسينات webui الخاص بك بدلاً من استخدام Tampermonkey عبر Alt WebUI https://github.com/qbittorrent/qBittorrent/wiki/Alternate-WebUI-usage

ما زالت setRule لا تعمل في 4.1.3 ، هنا مقطع فيديو قمت بإنشائه ، يمكنك أن ترى أنه يسير بشكل خاطئ عندما أحاول تعيين عنوان url للخلاصة

https://youtu.be/t_w9epoyxC8

تم تغيير البروتوكول. لا أتذكر بالضبط أيهما قمت بإجراء التعديل منذ بعض الوقت. يرجى المراجعة.

"

// ==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 لقد قارنت نسختين في أداة مقارنة ونعم ، التغيير الذي قمت به بالفعل. لقد قاموا بتغيير تنسيق عناوين url للخلاصة التي تم إرجاعها من api / v2 / rss / items

عندما أستخدم VNC وواجهة المستخدم الرسومية العادية أو فقط أنسخ الإعدادات مع إعداد موجز RSS بالفعل من جهاز يقوم بتشغيل واجهة المستخدم الرسومية ، فهل يمكنني بعد ذلك إيقاف qbittorrent وبدء qbittorrent-nox وسوف يلتقط ذلك؟ بمعنى آخر: هل فقط واجهة المستخدم الرسومية مفقودة أم مجموعة الميزات بأكملها؟

لذا إذا فهمت هذا بشكل صحيح ، يجب علينا إضافة موجز RSS بمفردنا ولن يتم إضافته إلى webui؟

عندما أستخدم VNC وواجهة المستخدم الرسومية العادية أو فقط أنسخ الإعدادات مع إعداد موجز RSS بالفعل من جهاز يقوم بتشغيل واجهة المستخدم الرسومية ، فهل يمكنني بعد ذلك إيقاف qbittorrent وبدء qbittorrent-nox وسوف يلتقط ذلك؟ بمعنى آخر: هل فقط واجهة المستخدم الرسومية مفقودة أم مجموعة الميزات بأكملها؟

على ما يبدو ، فقط واجهة المستخدم الرسومية مفقودة ، لقد قمت بالتبديل إلى -nox للاختبار قبل نشر التورنت الذي كنت أنتظره ، وتم تنزيله تلقائيًا بنجاح.

أي فكرة عندما يتم استهداف إضافة واجهة المستخدم الرسومية؟

مرحبًا يا رفاق ، إليك أحدث إصدار من واجهة مستخدم قاعدة RSS الخاصة بي.
يستخدم الآن المنشورات لجميع الطلبات التي تغير البيانات. كمكافأة ، فإنه يعمل مع جميع عناوين url الخاصة بالموجز (إنه خطأ في كيفية تحليل qbittorrent للمسارات من طلبات الحصول حاليًا).
تدعم واجهة المستخدم هذه القواعد حاليًا فقط ، ولا يمكنك إضافة موجز ويب وما إلى ذلك ، ولكن لا تتردد في إضافتها بنفسك

// ==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. يمكنك الآن إضافة واجهة مستخدم قواعد RSS الخاصة بي باستخدام طريقة webui البديلة. هنا الريبو الخاص بي

https://github.com/AndersMalmgren/qBittorrent

إرشادات لواجهة مستخدم بديلة
https://github.com/qbittorrent/qBittorrent/wiki/Alternate-WebUI-usage

AndersMalmgren لماذا لا تفتح العلاقات العامة لهذا التغيير؟

Piccirello عدة أسباب ، أولاً أستخدم محرك MVVM يسمى Knockout ، لست متأكدًا من أن الفريق الأساسي يريد إضافة محرك آخر إلى المزيج. ثانيًا ، لا يوجد دعم لغوي. ثالثًا ، صورها غير متسقة مع باقي واجهة المستخدم وأخيرًا أحتاج إلى تنظيفها. :د

اليوم هو الذكرى السنوية الخامسة لطلب هذه الميزة هنا على جيثب.

هل من الممكن الحصول على بعض الملاحظات حول خطط الفرق المستقبلية لـ RSS و webui.

هل من الممكن الحصول على بعض الملاحظات حول خطط الفرق المستقبلية لـ RSS و webui.

لم تتغير التعليقات خلال هذه السنوات الخمس. سيتم تنفيذه بمجرد وجود مطور ويب يريد المساهمة فيه.

في غضون ذلك ، تؤدي واجهة المستخدم البديلة هذه المهمة :)

أنا مطور ويب وأرغب في العمل على هذا (أريد بشدة هذه الميزة بنفسي). لا أعرف حقًا متى / إذا كنت سأتمكن بالفعل من إنهائه ، لأنني لست على دراية بقاعدة الشفرة على الإطلاق.

alexiooo عندما يتعلق الأمر بأساليب واجهة برمجة تطبيقات الويب RSS ، يمكنك التحقق من الفرع الخاص بي حول كيفية استخدامها

alexiooo ، كما يمكنك التواصل مع @ Piccirello. لقد قام بالكثير من العمل في عميل الويب الخاص بنا مؤخرًا. ربما لديه بعض الخبرة في تطبيق RSS. على الأقل يمكنه المساعدة في قاعدة البيانات.

+1

Piccirelloglassezngosangbuinsky
يبدو أن هذا طلب طويل الأمد وشائع جدًا ، فهل سيكون من الممكن إضافته إلى معلم رئيسي.
شكر

أنا ببساطة ليس لدي الوقت لأخذ هذا في الوقت الحالي. لم تتح لي الفرصة حتى لمعالجة التعليقات على العلاقات العامة الحالية الخاصة بي.

حقيقة الأمر هي أنه لدينا مطور ويب واحد فقط. نحن بحاجة إلى مزيد من الدعم من المجتمع لإنجاز ذلك.

alexiooo كما ذكر glassez ، لا تتردد في التواصل إذا كان لديك أي أسئلة حول بنية webui / webapi أو قاعدة بيانات qBittorrent. ليس لدي أي خبرة في خدمة RSS.

Piccirello هل هناك أي إرشادات حول توافق المتصفح؟ أرغب في استخدام بعض ميزات ES6 ، خاصة الفصول الدراسية ( https://caniuse.com/#feat = es6-class)

هذا شيء كنا بحاجة إلى اتخاذ قرار بشأنه لفترة من الوقت. أعلم أننا ناقشنا هذا الموضوع في قضايا / علاقات عامة أخرى ، لكن لا أتذكر أين.

في متناول اليد ، لدينا فصول موكا من المحتمل أن تحقق كل ما تحتاجه من فصول ES6. من ناحية أخرى ، يتم دعم فئات ES6 من قبل جميع المتصفحات التي يستخدمها المستخدمون على الأرجح ، بخلاف IE11. أنا لا أحب IE11 بقدر ما يعجبني الشخص التالي ، لكنني لا أريد التخلي عن الدعم بدون سبب وجيه. المشكلة الحقيقية هي أنه ليس لدينا أي نوع من المقاييس لمعرفة المتصفحات التي يستخدمها مستخدمونا.

تحرير: لقد وجدت هذا المنشور من

لا أعتقد أن الكثير من الناس يستخدمون IE11 ، حتى Microsoft تقول بعدم استخدامه https://techcommunity.microsoft.com/t5/Windows-IT-Pro-Blog/The-perils-of-using-Internet-Explorer- متصفحك الافتراضي / ba-p / 331732

هل سيكون من الممكن الاشتراك في مقاييس يمكن تمكينها في الإعدادات وتسجيل إحصائيات مجهولة لأشياء مثل هذه؟

هذه نقطة عادلة. يبدو أن IE لا يزال يطلب ما بين 5-10٪ من سوق متصفح سطح المكتب ، اعتمادًا على مصدرك . يبدو أن نسبة 10٪ عالية جدًا ، وأنا أتردد في إسقاط الدعم لهذا العدد الكبير من المستخدمين.

ولكن ، ربما يكون 4.2.0 هو الوقت المناسب للتبديل إلى es6. سيتعين على مستخدمي IE إما البقاء على 4.1 أو استخدام متصفح حديث. ومع ذلك ، لا أريد اتخاذ هذا القرار بمفردي. @ Chocobo1 ما هي أفكارك حول هذا؟ أعتقد أنك كنت ترغب في تحديث مكدسنا لفترة من الوقت.

ستشمل نسبة 10 ٪ أيضًا المستخدمين الأكبر سنًا الذين لا يعرفون حتى ما هو التورنت. أعتقد أنه عندما يتعلق الأمر بمستخدمي qBittorrent ، فإن nunber الذي يستخدم IE سيكون أقل بكثير ، لكن من المستحيل معرفة ذلك بدون أي إحصائيات لمستخدمي qBittorrent.

انتقل الكثير من مستخدمي qBittorrent إليه بسبب المشكلات المتعلقة بـ uTorrent ، وإذا كانوا مدركين بدرجة كافية لمخاطر uTorrent للانتقال إلى qBittorrent ، فانتقل إلى الإعدادات وقم بتعيينها بحيث يمكن الوصول إليها عبر webgui ، أشك في أنهم ما زالوا استخدم IE.

لكني أفترض فقط أنه ليس لدي أي أرقام حقيقية للانطلاق.

تعد إضافة المقاييس قفزة كبيرة إلى حد ما لتحقيق المدى القصير (خاصة في عالم ما بعد القانون العام لحماية البيانات) ولكن بافتراض وجود إصدار واحد على الأقل من الآن وحتى عندما تقوم بإسقاط دعم المتصفح ، فإن هذا يتيح لك الفرصة للتشفير في تحذير EOL. بهذه الطريقة يمكنك توجيه الرسائل تحديدًا إلى المتصفحات المتأثرة ومنح المستخدمين تنبيهًا.

نظرًا لأن هذا التنبيه يساعد المستخدمين على إدراك أن اختيار متصفحهم له آثار أمنية أوسع من مجرد qB .... ويضع التنبيه أمامهم مباشرةً بشأن المقاييس والمنشورات الإخبارية التي لن تفعل ذلك أبدًا ، ربما يكون هذا أسلوبًا أفضل.

لكني لا أريد التخلي عن الدعم بدون سبب وجيه.

الطريقة التي أفكر بها هي: هل وجود فصول ES6 مهم للغاية لدرجة أننا نريد التخلص من دعم IE11؟ أنا لست متأكدا تماما...
حتى لو كانت الإجابة إيجابية ، لا يزال من المبكر جدًا إجراء التبديل في سلسلة v4.2.x ، أوافق على https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -475126288 لديك تحذير من موسوعة الحياة مسبقًا (على الأقل لبضعة إصدارات). إذا أراد أي شخص أن يدرك ذلك ، يرجى تقديم قضية أخرى (أو العلاقات العامة) ودعنا نناقش هناك.

بدلاً من ذلك ، يمكننا استخدام Babel للترجمة. نحن عالقون في خطوة الترجمة على أي حال ، لذلك لن يكون لها تأثير كبير. بهذه الطريقة يمكننا استخدام ES6 ودعم IE في نفس الوقت.

يمكن استخدام المطبعية. سيتم تجميعها إلى كائنات النموذج الأولي

من الممكن ، نعم ، لكنني قصدت فقط تحويل جافا سكريبت ES6 العادي إلى جافا سكريبت يعمل على IE.

نعم ، ولكن نظرًا لأنك بحاجة إلى خطوة الإنشاء الإضافية هذه ، فيمكنك أيضًا الانتقال إلى الكتابة المطبوعة والاستفادة من أمان الكتابة

إذا لم يكن هذا ممكنًا حاليًا ، فماذا عن خيار "العميل" لواجهة مستخدم خادم X ، حتى نتمكن من تشغيل qbittorrent-nox وواجهة المستخدم بشكل منفصل؟ تقوم Deluge بعمل شيء من هذا القبيل: يمكن لواجهة المستخدم الرئيسية أيضًا أن تعمل كعميل للخادم ، بحيث يمكنك تشغيل الخادم في جهاز بدون شاشة ، والتحكم فيه عن بُعد من كمبيوتر آخر.

في غضون ذلك ، تؤدي واجهة المستخدم البديلة هذه المهمة :)

تضمين التغريدة
أرغب في الحصول على إرشادات حول كيفية نشر واجهة المستخدم البديلة الخاصة بك مع تثبيت windows من qBittorrent.
أي تنزيل XXX إلى مجلد ، قم بتوجيه qBittorrent "واجهة مستخدم ويب بديلة للمستخدم" إلى هذا المجلد.
أستطيع أن أرى أنك قمت بنشر برنامج نصي في تعليق أعلاه وقمت أيضًا بعمل مفترق.
هل يمكنني نسخ البرنامج النصي من منشورك ، وحفظه في ملف باسم ملف معين (من فضلك أخبرني بما يجب أن يطلق عليه!) ثم قم بتوجيه واجهة مستخدم الويب البديلة لـ qBittorrent إلى المجلد الذي يحتوي على هذا الملف؟
شكرا جزيلا لتقديم هذا للمجتمع.

تضمين التغريدة
مرحبًا ، تأكد أولاً من وجودك في الفرع 4.1.x.

src\webui\www يجب أن يذهب كل هؤلاء إلى مجلد على جهاز الكمبيوتر المحلي الخاص بك. تأكد أيضًا من نسخ src\icons إلى src\webui\www\public\images

تضمين التغريدة
مرحبًا ، تأكد أولاً من وجودك في الفرع 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 -> Web UI -> استخدام واجهة مستخدم ويب بديلة "قمت بتعيين موقع الملفات ليكون مجلد www ، وانقر فوق" موافق "
7) تصفح " http: // localhost : 8080" لرؤية واجهة المستخدم الجديدة

أستطيع أن أرى أن هناك رمز "RSS" جديد على شريط الأدوات ، مما يسمح لي بمشاهدة التنزيلات التلقائية لـ RSS الموجودة.
هذا رائع جدا ، شكرا على ذلك.
لسوء الحظ ، كنت آمل أن أرى علامة تبويب RSS الكاملة ، أي أن أرى محتويات موجز RSS وتنزيل السيول الإضافية حسب الضرورة: - / آمل أن يأتي ذلك في تحديث qBittorrent يومًا ما!

bakertony مرحبًا ، يبدو أن api / v2 / rss / items؟ withData = true يجب أن يكون قادرًا على إعطائك هذه البيانات. حاولت رغم ذلك.
https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#get -all-items

ثم قد تكون قادرًا على استخدام طريقة add torrent لإضافة سيل

https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#add -new-torrent

bakertony لقد أصلحت واجهة مستخدم للتنزيل. تأكد من استخدام فرع 41x إذا كنت تستخدم الإصدار القابل للتنزيل من qbittorrent. سيد إذا كنت تبني مصدرًا من سيد

https://github.com/AndersMalmgren/qBittorrent/tree/v4_1_x

شكرا جزيلا على ذلك AndersMalmgren. ومع ذلك ، فإنه لا يعمل كما هو الحال في مثيل HTTPS qb ، حيث تحاول سحب اثنين من js libs من مصدر HTTP. تم حظر هذا من قبل المستعرض لأنها ذات أصل مشترك. ببساطة تغيير http إلى https يعمل على إصلاح هذا. من الناحية المثالية ، يجب أن يتم حزم libs مع WebUI ، على ما أعتقد.

أيضًا مع تحديد واجهة المستخدم البديلة ، تفشل جميع طلبات الرموز / الصور في واجهة المستخدم مع الخطأ 500. لست متأكدًا من السبب ، فجميعها في الموقع الصحيح على نظام الملفات. لا توجد أخطاء في qbittorrent أو nginx ... غريب.

أكبر مشكلتي هي أنه لا يمكنني إضافة موجزات RSS جديدة. هل هناك طريقة لإدراجها في مخزن التكوين qb بطريقة ما؟

هل يمكنك اختيار هذه الميزة للإصدار الذي يدعم Raspberry Pi 2؟ شكر

AndersMalmgren ، لقد قمت باستنساخ فرع v4_1_x الخاص بك وقمت بتجميعه وتعيين واجهة المستخدم البديلة وفقًا للإرشادات. حصلت على زر RSS ولكنه لا يفعل شيئًا. أين يمكن أن أخطأ؟

AndersMalmgren ، في الواقع كان مجرد

AndersMalmgren ، ألا تدعم واجهة برمجة التطبيقات (API) إعداد تصفية الحلقة (الذكية) حتى الآن أم أنك لم تكلف نفسها عناء تضمينها؟

Ingvix أضاف فقط تلك التي

https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation#set -auto-download-rule

AndersMalmgren ، حسنًا ، شكرًا. أعتقد أنني سأحاول وأرى ما إذا كان بإمكاني القيام بذلك بنفسي.

كيف لم يضاف هذا بعد؟ 6 سنوات من العمر طلب هذه الميزة. هيا! إنه جزء أساسي من أي عميل تورنت.

أجل أوين! بالقدر الذي دفعناه مقابل هذا ، فمن المشين أنك لم تقم بترميزها وتقديمها بالفعل !!
كيف تضع </ سخرية>>؟

لقد قمت بالفعل بوضع علامة زائد واحد على هذا ، لكنني سعيد أيضًا بوضع أموالي في مكان فمي ، وسأساهم في مكافأة هذا!

سأستمر في استخدام برنامج utorrent 3.3 لنظام التشغيل Linux منذ عدة سنوات حتى تكتمل هذه الميزة.

نجاح باهر ... 6 سنوات

نعم ، كنت سأتخلى عن الانتظار إذا كنت مكانك.

+1

يبدو الأمر بلا فائدة ، لكنني سأضيف +1 إلى هذا الطلب ... ثم استمر في استخدام uTorrent والتحقق مرة أخرى كل عامين لمعرفة ما إذا كان هناك أي تقدم. ومع ذلك ، أدرك أنه منتج مجاني وأقدر أنه يفعل ما يفعله ، على الرغم من أنه إذا كان مدعومًا بالإعلانات ، فإن حمل الأشخاص الموجودين في هذه القائمة على الهجرة يجب أن يزيد هذه الإيرادات ...

WilliCJ كيف على الأرض لا طائل؟ Rtorrent هي واجهة المستخدم الوحيدة التي تتميز بإدارة RSS كاملة ومفتوحة المصدر. يستخدم على نطاق واسع.

عذرًا owenashurst لا بد أني لم أكن واضحًا ، ما قصدته هو أنه من غير المجدي إضافة طلب "+1" الصغير الخاص بي إلى طلب إلى سلسلة رسائل غير مفككة عمرها بالفعل 6 سنوات. لا بد لي من الاعتذار ، من الواضح أنني وضعته في المكان الخطأ لأنني لم أدرك حتى أنه كان هناك تطبيق Rtorrent. هل تنصح باستخدامه عبر uTorrent و qBittorrent؟

WilliCJ هاها حسنًا ، نعم Rtorrent هو تطبيق قائم على Linux ، وله واجهة مستخدم تسمى Rutorrent وهناك مكون إضافي لـ RSS يتم تثبيته بشكل افتراضي. Qbittorent عبارة عن منصة مشتركة ، لست متأكدًا مما إذا كان قد تم تجميع Rtorrent أم لا.

شكرًا owenashurst ، لقد تحققت للتو ، ويبدو أن Rtorrent لا يزال Linux فقط ، ولأنني أقوم بتشغيل نظام التشغيل windows في المربع الذي أستخدمه ، فلن يعمل ذلك بالنسبة لي. شكرا على كل حال! وبالنظر إلى ذلك ، ما زلت أرغب في رفع يدي لإنشاء موجز ويب لـ RSS وخيارات عوامل التصفية الخاصة بـ qBittorrent يمكن الوصول إليها من خلال webui إلى قائمة المطورين!

6 سنوات الانتظار طويلة جدًا بالنسبة لي.
هل هناك أي عميل تورنت بديل يدعم Linux و docker و rss و webui؟

@ Haxy89 إذا قرأت التعليقات السابقة ، فقد ذكرت Rtorrent وهو عميل bittorrent يستند إلى Linux ، كما أن واجهة مستخدم الويب (Rutorrent) التي تقوم بتثبيتها بشكل منفصل تحتوي على مكون إضافي مع دعم RSS والذي تتضمن جميع البرامج التعليمية عبر الإنترنت بشكل افتراضي. هناك أيضًا حاوية عامل إرساء تحتوي على كل ذلك على أي حال.

owenashurst @ Haxy89WilliCJ هل جربتم يا رفاق تنفيذ altWebUI من https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -483063942 + https://github.com/qbittorrent/qBittorrent/issues/453# إصدار -483342384؟

WolfganP لم

تضمين التغريدة
حاولت فقط ولكن ...
obraz

لا شيء تفعله هنا...

سأقاتل مع RTorrent

@ Haxy89 نعم ، لا يمكن إضافة موجز ويب من webUI. لم أشعر بالرغبة في البحث عن حل جديد ، لذا أعدت ترجمة qbittorrent مع واجهة مستخدم عادية وأضفت تلك الخلاصات عبر SSH و X11-forwarding. أيضًا ، لم يتم تضمين بعض خيارات التنزيل التلقائي ، لذا إذا احتاج المرء إلى تعيينها ، يحتاج المرء إلى استخدام إعادة توجيه X11 مرة أخرى ، أو تحرير ملفات التكوين يدويًا. نوع من السحب ولكن ليس الأمر كما لو أنني بحاجة إلى فتح واجهة المستخدم العادية في كثير من الأحيان ولا يزال لدى qBittorrent أفضل امتداد للمتصفح لإضافة السيول الجديدة بسرعة حتى أتمكن من تحمل الموقف.

تضمين التغريدة
حاولت فقط ولكن ...
obraz

لا شيء تفعله هنا...

ماذا تقول وحدة التحكم؟ شيء ما لم يتم إعداده بشكل صحيح. تأكد من أنك على الفرع 4.1.x راجع للشغل.

تحرير: تحتاج حاليًا إلى إعداد خلاصاتك من واجهة مستخدم سطح المكتب. لكن لدي إصدار يمكنه إعداد الخلاصات أيضًا. لكنها عربات التي تجرها الدواب قليلا

تضمين التغريدة

أنا لا أستخدم سطح المكتب.
سيكون من الرائع أن يكون لديك إمكانية إعداد كل شيء من الويب كما هو الحال في RTorrent

@ Haxy89AndersMalmgren لدي نفس المشكلة على علامة التبويب الخلاصات يجري فارغة حتى إذا كان هناك تغذية محددة بالفعل ولكن لم يكن لدي الوقت لاستكشاف أخطاء بشكل صحيح. نموذج rss / feeds.json:

{
    "The Pirate Bay - Video": {
        "uid": "{ad569ad7-ea3e-4bb5-8c85-a43215b5d352}",
        "url": "https://thepiratebay.org/rss//top100/200"
    }
}

نظرًا لأنني أعمل مع تصميم رئيسي ، فقد تكون المشكلة أن altWebUI من AndersMalmgren fork يتخلف كثيرًا عن حالة WebUI الحالية. ربما يمكن لـ Piccirello (المعروف أيضًا باسم WebUI master :-) اقتراح طريقة للمضي قدمًا والمساعدة في استكشاف الأخطاء وإصلاحها.

wolfganp لقد اختبرت ذلك فقط على 4.1.5 سيتم التحديث إلى 1.7 ونرى

WolfganP يعمل على 4.1.7 بالنسبة لي

راجع للشغل ، لا توجد وظيفة API لفرض جلب RSS. لذلك تحتاج إلى إضافة قاعدة تلقائية إلى خلاصتك. وإلا فإن علامة التبويب "الخلاصات" ستكون فارغة ، على الرغم من أنه يجب أن تعرض اسم الخلاصة أسفل علامة تبويب "الخلاصات".

تم تحديث فرع 4.1.x الخاص بي باستخدام واجهة مستخدم أساسية لإدارة التغذية

image

تعمل AndersMalmgren بشكل جيد بالنسبة لي الآن (تم اختبار قائمة الخلاصات فقط ، وليس وظائف أخرى). شكرا جزيلا!

راجع للشغل ، في سطر rss.js 39 ، ستحتاج على الأرجح إلى تحديث تنسيق رمز RSS إلى svg : src='images/qbt-theme/rss-config.svg'

WolfganP تحتاج إلى استخدام الرموز من 4.1.x. هناك رمز بابوا نيو غينيا

owenashurst @ Haxy89WilliCJ هل جربتم يا رفاق تنفيذ altWebUI من # 453 (تعليق) + # 453 (تعليق) ؟

WolfganP لدي الآن ، ولا يظهر زر "قواعد RSS" نفسه بشكل صحيح (ربما فعلت شيئًا خاطئًا ، لكنني اعتقدت أنني اتبعت التعليمات) ، ولكن يبدو أنه يسمح لي بالوصول إلى RSS وتعديله قواعد التنزيل التلقائي ، واعرض موجزات RSS الحالية ولكن لا تقم بإضافتها / تحريرها.

تحقق من وحدة التحكم عن الأخطاء من فضلك

تحقق من وحدة التحكم عن الأخطاء من فضلك

آسف AndersMalmgren ، لا يمكنني رؤية أي أخطاء يبدو أنها تتعلق بـ webui.

كان التثبيت الأصلي لـ qBittorrent ببساطة من المثبت الذي تم تنزيله من موقع qBittorent.org ، لكنني قمت الآن بتنزيل النسخة / zip من github ونسخ بعض الملفات التي لم تكن في مجلد "qBittorrent-mastersrc \ icons" " https://github.com/AndersMalmgren/qBittorrent " استنساخ / zip. يوجد الآن رمز موجز ويب لـ RSS.

شكرا أندرس ، وأوين!

... الآن عليّ فقط معرفة كيفية تشغيل filebot من qBittorrent!

راجع للشغل ، لا توجد وظيفة API لفرض جلب RSS. لذلك تحتاج إلى إضافة قاعدة تلقائية إلى خلاصتك. وإلا فإن علامة التبويب "الخلاصات" ستكون فارغة ، على الرغم من أنه يجب أن تعرض اسم الخلاصة أسفل علامة تبويب "الخلاصات".

AndersMalmgren فقط أفكر بصوت عالٍ (ولم

لا أعرف ما الذي تتحدث عنه يا رفاق. ما API التي تفتقدها حقا؟

أضف قاعدة لا تتطابق أبدًا مع أي سيل ، ولكنها ستؤدي إلى تحديث الخلاصة على أي حال؟

إنه لا يعمل بهذه الطريقة.
يتم تحديث الخلاصات في فترة زمنية محددة. عندما يتم تطبيق قواعد تحديثات الخلاصة عليه.

نحتاج إلى كشف هذه الإعدادات للمستخدم

image

يمكن إصلاح ذلك مع API الحالي. لكن وظيفة تحديث جميع الخلاصات غير موجودة في API

image

أو تحديث تغذية الفردي لهذه المسألة

image

لقد أضفت إعدادات موجز ويب RSS إلى علامة تبويب إعدادات التنزيل في فرع 4.1.x

image

تضمين التغريدة
أي إعدادات للتنزيل التلقائي؟
أين يتم تنزيل السيول تلقائيًا؟ مجلد التنزيل الافتراضي؟
مرشحات للتنزيل التلقائي فقط السيول المحددة وما إلى ذلك؟

@ Haxy89 ألم تكن تلك هي التغييرات الأولى التي أجراها في الريبو الخاص به؟ أو على الأقل تلك المعلنة في هذا العدد. يمكنك تعيين موقع التنزيل لكل قاعدة.

@ Haxy89 تم تضمينها مثل Ingvix يقول. فوق إعدادات RSS لم تكن حتى الآن.

أضفت إعدادات تغذية RSS إلى علامة تبويب إعدادات التنزيل

هل يمكنك تقديم تغييراتك كطلب سحب؟
أم أنه غير متوافق مع qBittorrent المدمج في WebUI؟

لكن وظيفة تحديث جميع الخلاصات غير موجودة في API

سوف يكون.

أضفت إعدادات تغذية RSS إلى علامة تبويب إعدادات التنزيل

هل يمكنك تقديم تغييراتك كطلب سحب؟
أم أنه غير متوافق مع qBittorrent المدمج في WebUI؟

الميزة الوحيدة المفقودة هي الترجمة. هاردكوديكون في الوقت الراهن

https://github.com/AndersMalmgren/qBittorrent/blob/c52de3980f7543248e88f76c09f53da41dc4d63b/src/webui/www/private/preferences_content.html#L236

سأكون بخير حتى في حالة عدم وجود ترجمة ، على الأقل سنتمكن من الحصول عليها!

لذلك تمكنت من تشغيله ، على الأقل بصريًا. على الرغم من أنه لم يضف أي السيول مطلقًا. أفترض أن تضمين / عدم تضمين يدعم regex؟ هل يجب كتابته بالشرط أم بدونه؟ إذا لم يكن الأمر كذلك ، فأنا لا أعرف بالفعل كيف يعمل. وهل تفكر في دعم regex؟

أيضًا بعد العبث بإعدادات rss ، توقف في الواقع عن العمل معًا. ينتج هذا الخطأ:
نوع الملف غير مقبول ، يسمح فقط بالملف العادي

عندما أذهب إلى عنوان url
أنا أستخدم Debian 10 qbittorrent من المستودعات. إنه 4.1.5-1

عندما أقوم بتعديل الإعدادات في قسم التنزيل ، فإنه يعطل واجهة المستخدم الجديدة ولا بد لي من إعادة تمكينها (وأدعو الله ألا يكسر كل شيء)

على أي حال ، أود فقط أن أقول إنك تقوم بعمل الرب. أنا ممتن جدًا لإمكانية الوصول إلى RSS في webui حتى لو كان هناك القليل من الأخطاء.

xrishox لم أستخدمها بنفسي. يمكن اصلاحه. شكر :)

هل تعلم ما يعنيه هذا الخطأ "نوع الملف غير مقبول ، يسمح فقط بالملف العادي"

أحيانًا عندما أذهب إلى عنوان url الخاص بـ webui الذي يظهر. يبدو أنه يمكن إصلاحه فقط عن طريق حذف 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 البديل ويجب علي إعادة تمكينها والكتابة في المسار البديل مرة أخرى. إنها ليست صفقة كبيرة لأنها تعمل على الأقل ، لكنني لست متأكدًا من سبب قيامها بذلك. لدي أيضًا أخطاء غريبة في واجهة المستخدم تجعلها لا تظهر أيقونات واجهة المستخدم ويتم تكرار النص لسبب غريب. لست متأكدًا من سبب ذلك كما قمت بنسخ جميع الرموز إلى / خاص و / عام. لا يؤثر ذلك على قدرتي على استخدام qbittorrent على الرغم من أنني لست مهتمًا به بشكل خاص. الإبلاغ هنا فقط من أجل الاكتمال.

وإليك صورة لمراوغات واجهة المستخدم الغريبة https://i.imgur.com/kkdGyzs.png

آمل حقًا أنه عند النقطة التي يثبت فيها أن هذا مستقرًا وقويًا ، يتم دمجه لأن هذه ميزة رائعة.

لكن وظيفة تحديث جميع الخلاصات غير موجودة في API
سوف يكون.

glassez شكرا! https://github.com/qbittorrent/qBittorrent/pull/11055

هل تعلم ما يعنيه هذا الخطأ "نوع الملف غير مقبول ، يسمح فقط بالملف العادي"

يحدث ذلك عندما يتم تمكين alt webUI في * nix والملف المطلوب ليس "ملفًا عاديًا" (لست متأكدًا مما يعنيه بالضبط). من المحتمل أيضًا عند عدم وجود مثل هذا الملف ، لذا لا يمكن التحقق من نوعه.

xrishox لقد كشفت عن خيار regex. في فرع بلدي 4،1.x

لقد أضفت إعدادات موجز ويب RSS إلى علامة تبويب إعدادات التنزيل في فرع 4.1.x

أنا أنقلها في qBittorrent master (# 11056).
لسوء الحظ ، لا يمكنني فعل ذلك مع التعليمات البرمجية الأخرى لـ AndersMalmgren ، لأنها غير متوافقة مع قاعدة الكود لدينا.

glassez إنها مدرسة قديمة جدًا بالنسبة لي :)

تحرير: ويحتاج الرمز الخاص بي إلى التنظيف لإصدار رسمي

AndersMalmgren هل https://github.com/qbittorrent/qBittorrent/pull/11055 ؟ (السماح بتحديث عنصر (عناصر) RSS عبر WebAPI)

رائع ، لقد قمت بتمكين regex. لم يكن لدي أي حدث حيث سيتم إطلاقه حتى الآن ، لذلك نأمل أن يعمل.

لدي بعض الاقتراحات حول جودة الحياة إذا كنت منفتحًا عليها. لاحظ أن هذه ليست طلبات أو مطالب لأنها تعمل بالفعل بشكل مثالي لحالة الاستخدام الخاصة بي كما هي ، ولكن هناك بعض الأشياء التي يمكنك وضعها في الاعتبار.

عندما تضغط على حفظ في صفحة "التنزيل التلقائي" ، يمكن أن تحفظ التعديلات لجميع التنزيلات التلقائية التي قمت بتعديلها وليس فقط التنزيلات التي يتم التركيز عليها حاليًا. أو بدلاً من ذلك إضافة زر حفظ الكل.

هناك ميزة أخرى قد تكون مفيدة وهي الحصول عليها بحيث يمكن إضافة الأشياء التي يتم تنزيلها تلقائيًا إلى فئة / علامة حيث تكون الفئة / العلامة هي اسم ما تم تنزيله تلقائيًا.

@ WolfganP ليس لدي بيئة C ++ في الوقت الحالي ، ولم أعمل معها منذ سنوات ، لذا لم أزعج نفسها بمحاولة تجميعها لتكون صادقة. أعتقد أنه من المخطط له 4.2 معلم. لكنه حل سهل بمجرد تطبيق طريقة الباقي.

xrishox شكرًا على التعليقات ، يمكنني إضافة زر حفظ الكل. تبدو الفئة ذاتية للغاية وقد لا تكون مناسبة. يمكنني عرض حقل الفئة إذا كنت تريد؟

AndersMalmgren إذا كان ذلك Dockerfile الخاص بي لإنشاء كود qBittorrent المحلي بسهولة. سيقوم ببناء libtorrent 1.1 من المصدر أيضًا. يحتوي على بعض الجوانب السلبية في الوقت الحالي (لا يمكنك المرور في التكوين ، فهو لا يدعم الإنشاءات المتزايدة) ولكنه يجعل من السهل حقًا إنشاء qBittorrent.

إصدار Docker: docker build -t qbittorrent/qbittorrent .
تشغيل Docker: docker run --rm -it -p 8080:8080 qbittorrent/qbittorrent

@ Piccirello متى يتم التخطيط 4.2؟ لا يوجد سبب لي لإصلاح هذا حتى يقترب 4.2 من الإصدار

في هذه المرحلة ، يكون تخمينك جيدًا مثل تخميني.

@ Piccirello متى يتم التخطيط 4.2؟ لا يوجد سبب لي لإصلاح هذا حتى يقترب 4.2 من الإصدار

قد يتم إصدار الإصدار التجريبي العام 4.2.0 في الأيام القليلة القادمة / الأسبوع أو اليومين وفقًا # 10047
هناك إصدار ألفا 4.2.0 تم نشره سابقًا وأنا أستخدمه منذ نهاية يونيو.

حسنًا ، عندما يكون إصلاح RSS في مرحلة تجريبية ، يمكنني تنفيذه في رئيسي

لذلك كان لدي للتو مشغل حدث rss ويبدو أن التعبير العادي لا يعمل. لقد قمت بنسخها من rutorrent حيث تعمل بالضبط وجربتها مع وبدون الشرطات المائلة.

يتوفر الآن إجراء "RefreshItem" في فرع v4.1.x.

glassez هل يمكنني الحصول على نسخة تجريبية ثنائية في مكان ما؟ شكر

لا أطيق الانتظار حتى تصل إلى واجهة مستخدم ويب rss مثالية. AndersMalmgren هل يمكنك تقديم طلب سحب إلى سيد؟

@ caoli5288 هل جربت استخدام طريقة altWebUI وفقًا لـ https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -483063942؟ (https://github.com/AndersMalmgren/qBittorrent استخدم الفرع 4.1 وفقًا لـ https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment-483342384)

WolfganP إنها تعمل ولكنها ليست مثالية للغاية. ليس كما هو موضح في https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -519135601 ويصعب تصفح محتويات يغذي المتصفح.

图片

@ caoli5288 https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -519135601 ليس webUI ، لكن QtUI. كانت هذه التعليقات مرتبطة بتحديث موجز غير متوفر على واجهة برمجة تطبيقات الويب ، تم تنفيذه لاحقًا بواسطة glassez على https://github.com/qbittorrent/qBittorrent/pull/11055

كيف تجري الامور؟ هل يمكننا رؤية هذه الميزة في الإصدار القادم؟

كيف تجري الامور؟ هل يمكننا رؤية هذه الميزة في الإصدار القادم؟

يمكنك تجربة هذا: https://github.com/miniers/qb-web
ولكن فقط الصينية

كيف تجري الامور؟ هل يمكننا رؤية هذه الميزة في الإصدار القادم؟

يمكنك تجربة هذا: https://github.com/miniers/qb-web
ولكن فقط الصينية

miniers شكرا! هل جربته مع AltWebUI؟ لقد فتحت للتو https://github.com/miniers/qb-web/issues/3 للسؤال عن استخدام سلاسل الترجمة الحالية.

أنا +1 على RSS. هل هذا يعني أن تنزيل RSS الأساسي قادم إلى qbittorrent-nox؟

(تم تجاهل هذا المشكوك فيه اعتبارًا من 2013)

هناك بعض الأمل في رؤية هذا في 4.2؟ @ Chocobo1 رأيت أنك أجريت الكثير من التحسينات وأعتقد أن هذا هو أكبر شيء افتقدته في webui :(

+1 أنا أستخدم qbittorrent منذ سنوات وأنا أبحث بنشاط عن تطبيق تورنت آخر بسبب عدم وجود دعم RSS لواجهة مستخدم الويب في qbittorrent.

wtf بعد 9 سنوات وما زال لا يوجد أي تحديث

ikiddoi يجب أن تقرأ فوق تعليقك وتدرك أنه في إصدار تجريبي من qbittorrent.

المرجع: https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -549786145

أفتقد شيئًا ما ، لا أرى الخيار في WebUI باستخدام qbitorrent-nox من غير مستقر (4.2.0 \ ~ 201911110018-6775-8711613 \ ~ ubuntu18.04.1).

لاحظ أنه متأكد تمامًا ولكن كانت هناك دائمًا مشكلة تكافؤ في الميزات بين nox والإصدار القياسي.

لقد أصلحت دعم 4.2 في فرعي الرئيسي

https://github.com/AndersMalmgren/qBittorrent/tree/master

كما أن لديها دعمًا لتحديث الأعلاف الآن. انقر فوق رمز التحديث الصغير بجانب اسم الخلاصة

أنا لا أفهم بطء الفريق الرسمي في التعامل مع المجتمع.
انظر إلى هذه الآلاف من القضايا المفتوحة!
ربما حان الوقت لإيجاد بديل لـ qbittorrent.

أنا لا أفهم بطء الفريق الرسمي في التعامل مع المجتمع.
انظر إلى هذه الآلاف من القضايا المفتوحة!
ربما حان الوقت لإيجاد بديل لـ qbittorrent.

هذا بسبب نقص المطورين. أنت مرحب بك للغاية للمساهمة وتقديم الحلول للقضايا المفتوحة ، ولكن هذا ربما لا يثير اهتمامك لأنه عمل غير مدفوع الأجر.

كم تبرعت للمساعدة في تطوير الميزات والإصلاحات؟ يعمل المطورون في وقتهم الخاص في القيام بعمل مجاني ، وحتى إذا كنا نرغب في ذلك إذا تم تنفيذ بعض الأشياء مثل هذا في وقت أقرب ، فيجب أن نظهر امتناننا للعمل والجهود التي بذلوها في المشروع ، بدلاً من التمثيل كأنه من حقنا لهم أن يفعلوا ما نريده مجانًا وأن نغضب منهم عندما لا يضحون بالمزيد من وقتهم من أجلنا.

الجحيم ، إذا كنت أحد المطورين ، فسأبدأ في إعادة النظر فيما إذا كنت أرغب في تخصيص وقتي وجهدي في مشروع عندما يكون مستخدمو المشروع غير ممتنين للغاية.

واو ، الاستحقاق في هذا الموضوع.

أصدر الفريق الرسمي بيانًا رسميًا بأنهم ببساطة لم يفعلوا ذلك
لديك الوقت الكافي لقضائه على هذه الميزة ، ولكن كان منفتحًا على المساهمات من
المجتمع. كن سعيدًا لأنه وصل أخيرًا إلى هنا ، أو اذهب وساهم بنفسك.

في 14 نوفمبر 2019 ، كتب caoli5288 [email protected] 12:28:20:

أنا لا أفهم بطء الفريق الرسمي في التعامل مع المجتمع.
انظر إلى هذه الآلاف من القضايا المفتوحة!
ربما حان الوقت لإيجاد بديل لـ qbittorrent.—
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو اعرضها على GitHub ، أو قم بإلغاء الاشتراك.

كم تبرعت للمساعدة في تطوير الميزات والإصلاحات

@ BradleyDS2 يعد الاستماع إلى المجتمع وتحسين البرامج أحد أخلاقيات البرامج مفتوحة المصدر. كيف يمكنك أن تقول كم أتبرع؟

أنت أكثر من موضع ترحيب للمساهمة وتقديم الحلول للقضايا المفتوحة

هذه فكرة متعجرفة. ما الذي يمكن أن يفعله معظم المستخدمين ولكن الشكوى؟ انظر إلى حسابك. لم تساهم بسطر واحد من التعليمات البرمجية لأي مشروع. هل هذا لأنك سعيد بأي مشروع؟ أو هل تعتقد أنه يجب على جيثب حذف صفحة المشكلات والاستمرار في طلب السحب؟

ستفقد البرامج مفتوحة المصدر المستخدمين إذا لم تستمع إلى المجتمع. من الغريب أن أتهمني بمجرد قول حقيقة ،

ما الذي يمكن أن يفعله معظم المستخدمين ولكن الشكوى؟

تبرع ، اسحب الطلبات ، ملاحظات بناءة. اسأل الفريق عما يودون أن تفعله للمساهمة.

بالنسبة لشيء آخر قلته ، سأجمع بعض كلماتك الخاصة كرد فعل.

كيف تقول
أخلاقيات البرمجيات مفتوحة المصدر
هذه فكرة متعجرفة

يعمل الفريق بجد ، فقط لأن ما تريده على وجه التحديد لا يتم تنفيذه لا يقلل من الجهد الذي يبذله. إذا كنت لا تريد أن تكون بنّاءً وأنت هنا فقط للشكوى ، فالرجاء المغادرة. لا أحد يحتاج إلى تلك السمية.

يستمعون إلى المجتمع ويعطون الأولوية للقضايا. استغرق هذا وقتًا طويلاً لأنه لم يكن لديهم حرفيًا أي شخص يمكنه العمل عليه لغالبية الوقت الذي كان مفتوحًا.

يستمعون إلى المجتمع ويعطون الأولوية للقضايا

@ BradleyDS2 حتى 2000+ فتح القضايا؟

أنا مطور مفتوح المصدر وساهمت في عشرات المشاريع مفتوحة المصدر. ماذا فعلت؟ لا أرى أنك تساهم في بعض المشاريع ، يبدو لي أنك تتحدث فقط.

لم أفعل شيئًا مع qbittorrent ؛ لقد بدأت طلب ملف dockerfile قبل بضعة أشهر ، وتم رفضه.

كنت محقا في شيء واحد فقط. أنا راحل.

يستمعون إلى المجتمع ويعطون الأولوية للقضايا

@ BradleyDS2 حتى 2000+ فتح القضايا؟

أنا أشير إلى 6500+ مغلق.

أنا مطور مفتوح المصدر وساهمت في عشرات المشاريع مفتوحة المصدر. ماذا فعلت؟ لا أرى أنك تساهم بأي شيء في أي مشروع ، يبدو لي أنك تتحدث فقط.

لابد أنك فقدت شيئًا ما بعد ذلك ، كما فعلت بالتأكيد طلبات سحب للمشاريع من قبل ، لكنني أستخدم gitlab بشكل أساسي.

لم أفعل شيئًا مع qbittorrent ؛ لقد بدأت طلب ملف dockerfile قبل بضعة أشهر ، وتم رفضه.

أنت وأنا على حدٍ سواء يعرف سبب رفضه. تم تعيينه لقبول الإشعار القانوني تلقائيًا ، وقال المطورون أيضًا "لا أعتقد أن لدينا القدرة على الحفاظ عليه رسميًا الآن".

أحد الأسباب الوحيدة لعدم تنفيذه في كل هذه السنوات هو أن مشروع qBittorrent لا يحتوي على مطور ويب نشط / دائم في فريقه . تم ذكر هذا السبب هنا عدة مرات ، لذلك يجب على أولئك الذين لا يفهمونه التفكير بجدية في قدراتهم العقلية.

لقد أصلحت دعم 4.2 في فرعي الرئيسي

https://github.com/AndersMalmgren/qBittorrent/tree/master

كما أن لديها دعمًا لتحديث الأعلاف الآن. انقر فوق رمز التحديث الصغير بجانب اسم الخلاصة

افترضت أنه سيتم الآن تنفيذ وظيفة التنزيل التلقائي لـ RSS دون الحاجة إلى واجهة مستخدم بديلة ولكن أليس هذا هو الحال؟ على الأقل لا يمكنني رؤية طريقة للوصول إلى قواعد التنزيل التلقائي الخاصة بي من webUI بعد إنشاء فرعك الرئيسي.

لقد أصلحت دعم 4.2 في فرعي الرئيسي
https://github.com/AndersMalmgren/qBittorrent/tree/master
كما أن لديها دعمًا لتحديث الأعلاف الآن. انقر فوق رمز التحديث الصغير بجانب اسم الخلاصة

افترضت أنه سيتم الآن تنفيذ وظيفة التنزيل التلقائي لـ RSS دون الحاجة إلى واجهة مستخدم بديلة ولكن أليس هذا هو الحال؟ على الأقل لا يمكنني رؤية طريقة للوصول إلى قواعد التنزيل التلقائي الخاصة بي من webUI بعد إنشاء فرعك الرئيسي.

لا أعرف كيف تعمل عملية الإنشاء الخاصة بـ qbittorrent ، ولكن الملفات موجودة ، لذا أعتقد أنه يجب تضمينها في الإنشاء.

لكني أستخدم طريقة واجهة المستخدم البديلة

AndersMalmgren حسنًا ، لقد فعلت ذلك مرة أخرى وفقًا للتعليمات الواردة في https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -483063942 مع المصادر التي قمت أيضًا ببناء qbittorrent معها وجعلتها تعمل. من المضحك أن التغييرات لم يتم تضمينها في البناء نفسه على الرغم من وجودها في شفرة المصدر.

AndersMalmgren حسنًا ، لقد فعلت ذلك مرة أخرى وفقًا للتعليمات الواردة في # 453 (تعليق) مع المصادر التي أقوم أيضًا ببناء qbittorrent معها وجعلتها تعمل. من المضحك أن التغييرات لم يتم تضمينها في البناء نفسه على الرغم من وجودها في شفرة المصدر.

ربما هناك قائمة في مكان ما عليك إضافة rss.js أيضًا ، أظن :)

AndersMalmgren حسنًا ، لقد فعلت ذلك مرة أخرى وفقًا للتعليمات الواردة في # 453 (تعليق) مع المصادر التي أقوم أيضًا ببناء qbittorrent معها وجعلتها تعمل. من المضحك أن التغييرات لم يتم تضمينها في البناء نفسه على الرغم من وجودها في شفرة المصدر.

لا حاجة لإعادة بناء كل شيء باستخدام AndersMalmgren fork لاستخدام ميزات RSS (والتي نشكره جميعًا على :-)
ما عليك سوى الحصول على رمز المصدر الرئيسي الخاص به على شكل مضغوط ، واستخراج مجلد الويب ، وتوجيه qBt الرسمية إلى إعدادات AltWebUI إلى هذا المجلد. كل شيء يعمل.

WolfganP إذا فهمت Ingvix صحيحًا ، فقد قام ببناء المصدر في ملف ثنائي وهذا الثنائي لا يحتوي على

لكنك على صواب ، لاستخدام تغييراتي مع الثنائي القياسي ، تحتاج إلى استخدام طريقة واجهة مستخدم الويب البديلة.

بالنظر إلى الكود ، يبدو أن واجهة برمجة التطبيقات قد تم بناؤها بالفعل ، فقط يجب كتابة واجهة المستخدم؟ 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.

هل تخطط لطلب سحب للحصول على دعم ويب ويب آر إس إس بشكل رئيسي؟

AndersMalmgren هل يمكنك فتح طلب سحب لدمج تغييراتك في الريبو هذا؟

AndersMalmgren هل يمكنك فتح طلب سحب لدمج تغييراتك في الريبو هذا؟

يمكنني ولكن لست متأكدًا من أن الفريق يريد سحب هذا الأمر ، فهو لا يعمل مثل بقية واجهة المستخدم ولم أقم بعمل تصميم رائع للغاية على الكود فقط أردت شيئًا سريعًا للعمل من أجل استخدامي الخاص :)

AndersMalmgren هل يمكنك فتح طلب سحب لدمج تغييراتك في الريبو هذا؟

أنا أؤيد هذه الحركة.
ليس لدي أي معرفة بالبرمجة (فقط نسخ ولصق) وعندما أحاول استخدام WUI البديل ، فإنه دائمًا ما ينكسر ويجب أن أعود من الصفر.
إذا أصبح هذا هو WUI افتراضيًا ، فيمكن للأشخاص مثلي الاستفادة من ميزة RSS هذه.

ليست هناك حاجة لدمج التعليمات البرمجية وانتظار الإصدارات الخاصة بوظيفة WebUI (إذا لم يتم تعديل WebAPI) منذ تطبيق altWebUI. استخدم الأدوات الحالية للحصول على AndersMalmgren أو تغييرات

على سبيل المثال: لتنزيل جزء فقط من شجرة المصدر من جيثب ، استخدم https://minhaskamal.github.io/DownGit
على وجه التحديد لتحديث تعديلات RSS على AndersMalmgren -> https://minhaskamal.github.io/DownGit/#/home ؟ url = https:٪ 2F٪ 2Fgithub.com٪ 2FAndersMalmgren٪ 2FqBittorrent٪ 2Ftree٪ 2Fmaster٪ 2Fsrc٪ 2Fwebui٪ 2F ثم قم بتوسيع ملف zip على بعض المجلدات واستخدمه عند altWebUI باتباع الإرشادات على https://github.com/qbittorrent/qBittorrent/wiki/Alternate-WebUI-usage

أنا لا أعرف ما أفعله خطأ.

الرابط هو ما أحصل عليه في Chrome عندما أجريت التغييرات على إعدادات WebUI
https://mega.nz/#!c9hTgYKa!2q4agsrwv787vwCre -as4IKog1lGQLTBAsGsMfDTeAo

وهذا الآخر مجلد www الخاص بي مع الرموز
https://mega.nz/#!AtoFFKhJ!q8RiQQdV2oYBHMhbcqnpmiUZ3cQFSKYltUiDRZCGY0E

هذا هو تكوين WebUI الخاص بي
WebUI \ العنوان = *
WebUI \ AlternativeUIEnabled = صحيح
WebUI \ AuthSubnetWhitelist = @ Invalid ()
WebUI \ AuthSubnetWhitelistEnabled = خطأ
WebUI \ CSRFProtection = صحيح
WebUI \ ClickjackingProtection = صحيح
WebUI \ Enabled = صحيح
WebUI \ HTTPS \ Enabled = false
WebUI \ HostHeaderValidation = صحيح
WebUI \ LocalHostAuth = خطأ
WebUI \ Password_ha1 = xxxxx
WebUI \ المنفذ = 1340
WebUI \ RootFolder = / mnt / مشاركة / شبكة الاتصالات العالمية /
WebUI \ ServerDomains = *
WebUI \ UseUPnP = صحيح
WebUI \ Username = xxxx

هل يستطيع أي أحد مساعدتي؟

Piocas موضوع هذا الموضوع مخصص لمناقشة إدارة RSS في Web UI. يرجى فتح مشكلة جديدة إذا كنت تعتقد أن هذا خطأ أو انتقل إلى منتدى qBittorrent الرسمي للحصول على مساعدة التكوين.

ستكون هذه ميزة رائعة.

من المحزن أن مرت 7 سنوات ولم يتم تنفيذ ذلك. كندة مجنونة في الواقع.

ليست هناك حاجة لدمج التعليمات البرمجية وانتظار الإصدارات الخاصة بوظيفة WebUI (إذا لم يتم تعديل WebAPI) منذ تطبيق altWebUI. استخدم الأدوات الحالية للحصول على AndersMalmgren أو تغييرات

على سبيل المثال: لتنزيل جزء فقط من شجرة المصدر من جيثب ، استخدم https://minhaskamal.github.io/DownGit
على وجه التحديد لتحديث تعديلات RSS على AndersMalmgren -> https://minhaskamal.github.io/DownGit/#/home ؟ url = https:٪ 2F٪ 2Fgithub.com٪ 2FAndersMalmgren٪ 2FqBittorrent٪ 2Ftree٪ 2Fmaster٪ 2Fsrc٪ 2Fwebui٪ 2F ثم قم بتوسيع ملف zip على بعض المجلدات واستخدمه عند altWebUI باتباع الإرشادات على https://github.com/qbittorrent/qBittorrent/wiki/Alternate-WebUI-usage

لقد نجح هذا بالنسبة لي ، على الرغم من أن الحصول على المسار الصحيح ألقى بي في حلقة صغيرة في البداية. على أي حال ، نظرًا لأن هذا قد تم تنفيذه بالفعل ، كيف يمكنني (أو أي شخص آخر) المساعدة في دمج هذه التغييرات في المنبع؟

فقط للتأكيد ، فقط وظيفة التحكم / التحرير غير متوفرة في واجهة المستخدم؟ هل تستمر موجزات RSS في تشغيل التنزيلات؟

+1 برجاء إضافة إمكانيات RSS إلى qbittorrent-nox بحيث يتطابق مع ميزات qBittorrent مع نوافذ X.

يحتوي qbittorrent-nox على إمكانيات RSS ، وهو واجهة الويب الأمامية التي لا توفر أي واجهة مستخدم له.

إذن أنت الآن بحاجة إلى واجهة لإدارتها.

إذن أنت الآن بحاجة إلى واجهة لإدارتها.

يمكنك بالفعل التحكم فيه من خلال طلبات HTTP إلى WebAPI. هذا ما يفعله WebUI تحت الغطاء. إنها مجرد مجموعة من الأزرار التي تقدم الطلبات.

لذلك حتى يتم تحديث WebUI لتوفير طريقة رسومية للقيام بذلك ، يمكنك دائمًا تقديم طلبات باستخدام برنامج نصي أو شيء ما.

أو قم بتثبيته بنفسك حرفيًا https://github.com/qbittorrent/qBittorrent/issues/453#issuecomment -600877487

webUI بديل آخر ينفذ وظيفة RSS https://github.com/CzBiX/qb-web

webUI بديل آخر ينفذ وظيفة RSS https://github.com/CzBiX/qb-web

أتمنى أن يكون هذا هو webUI الافتراضي! إنها طريقة أفضل من الافتراضي!

webUI بديل آخر ينفذ وظيفة RSS https://github.com/CzBiX/qb-web

أتمنى أن يكون هذا هو webUI الافتراضي! إنها طريقة أفضل من الافتراضي!

لهذا السبب تم تنفيذ alt WebUI (ومؤخرًا عناصر قوالب Qt UI) ، للسماح للمستخدم بتخصيص وظائف واجهة المستخدم دون الحاجة إلى لمس النواة.
فقط تذكر أن أي تغييرات في الكود الأساسي تعني أن بعض المطورين (المجتمع ، غير المدفوع) يحتاجون إلى الحفاظ عليه إلى الأبد ...

أنا أميل إلى إغلاق هذه المشكلة الآن للأسباب التالية:

  • استمرت المحادثة لفترة طويلة جدًا وبعيدًا عن الموضوع. على الرغم من أن بعض الأشياء الجيدة جاءت من ذلك ، فمن المفترض أن تكون هذه البطاقة حول دعم RSS في WebUI الرسمي. إنه طلب ميزة بسيط وواضح ، وليس مكانًا للعديد من الأشياء الموجودة هنا.
  • هناك الكثير من مشاركات +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? منشورات تزدحم المحادثة بأكملها.
  • نظرًا لأن الوظيفة التي طلبها متاحة الآن عبر WebUIs بديلة ، فإن الشيء المعقول الوحيد الذي لم تتم معالجته هو دعم هذا في الوظيفة الرسمية.

عندما أغلق هذا ، سأفتح موضوعين جديدين:

  • واحد لتتبع تنفيذ هذه الميزة في WebUI الرئيسي (والتركيز حصريًا على ذلك). لا حاجة لتعليقات +1 إذا كنت تريد فقط أن تقول "نعم ، أريد هذا أيضًا" ، فقط استخدم ردود الفعل.
  • واحد يسمى "مناقشة تطوير WebUI البديل" أو ما شابه ذلك للأشخاص لمناقشة تطوير WebUI البديل بحرية في مكان مركزي.

إذا كان لدى أي شخص مخاوف إضافية ، أخبرني.

شكرا للجميع على ردود الفعل.

موضوع مناقشة التطوير قيد التشغيل: https://github.com/qbittorrent/qBittorrent/issues/12354.
طلب ميزة المتابعة موجود أيضًا على https://github.com/qbittorrent/qBittorrent/issues/12355. من فضلك لا ترسل رسائل غير مرغوب فيها ، استخدم ردود الفعل إذا كنت تريد فقط "+1".

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات