Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filter für hinzugefügte Kalender #63

Closed
mifricke opened this issue Oct 5, 2018 · 4 comments
Closed

Filter für hinzugefügte Kalender #63

mifricke opened this issue Oct 5, 2018 · 4 comments

Comments

@mifricke
Copy link

mifricke commented Oct 5, 2018

Hi!

Viele von uns nutzen den iCal Adapter sicher auch zum anzeigen öffentlicher Kalender. Da gibt es z.B. Kalender für die Abfallentsorgung.
Es wäre praktisch, wenn man bestimmte Stichworte eingeben könnte, nach denen die Events gefilter werden. Bei der Eingabe des Wortes "Windeltonne", hätte ich so nicht den Abholtermin der für mich nicht relevanten Windeltonne im Kalender. Es gibt bestimmt noch weitere Anwendungsfälle. Wäre ein Filter bzw. eine Blacklist denkbar?

@twonky4
Copy link
Contributor

twonky4 commented Oct 16, 2018

Das kann auch über ein Skript im ioBroker.javascript Adapter gelöst werden:

var filter = ['Restmüll'];
var instanceNumber = '0';

function performFilterTable() {
    var count = 0;
    var table = getState('ical.' + instanceNumber + '.data.table').val;
    table = table.filter(word => !filter.includes(word.event));
    for (var i = 0; i < table.length; i++) {
        if(table[i]._class.indexOf('ical_today') != -1) {
            count++;
        }
    }
    setState('ical.' + instanceNumber + '.data.table', table, false);
    setState('ical.' + instanceNumber + '.data.count', count, false);
}
function performFilterHtml() {
    var html = getState('ical.' + instanceNumber + '.data.html').val;
    html = html.split('<br/>');
    var htmlNew = [];

    for (var i = 0; i < html.length; i++) {
        for (var j = 0; j < filter.length; i++) {
            if(html[i].indexOf(filter[j]) == -1) {
                htmlNew.push(html[i]);
                break;
            }
        }
    }

    setState('ical.' + instanceNumber + '.data.html', htmlNew.join('<br/>'), false);
}

on({id: 'ical.' + instanceNumber + '.data.table', ack: true}, performFilterTable);
on({id: 'ical.' + instanceNumber + '.data.html', ack: true}, performFilterHtml);
performFilterTable();
performFilterHtml();

@twonky4
Copy link
Contributor

twonky4 commented Oct 16, 2018

@Apollon77: Hier eine Spalte mit Filter einfügen:
image
Zu diskutieren wären 2 Punke:

  • Wie gespaltet man die Eingabe: Eine einfache Komma separierte Liste, ein RegEx oder geht vlt. beides in einem Feld?
  • Wie die Filterlogic aussehen soll. Also soll nur in event oder auch in _section und location gesucht werden.

@twonky4
Copy link
Contributor

twonky4 commented Nov 18, 2018

@darkbrain85: Can you test the recent version 1.7.0 here from the repo?

@mifricke
Copy link
Author

mifricke commented Nov 19, 2018

It works perfect! No Problems!
I have not testet regex, but a Filter with "Windeltonne" as mentioned in my request is working with no problems.

Thank you very much for this!

@twonky4 twonky4 closed this as completed Dec 1, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants