megatolya/benefits

Лев Толстой

Opened this issue · 4 comments

Как описать ачивку Лев Толстой? Когда у человека много букв в инпуте

Я додумался только до

      {
        "rule_id": 666,
        "url_pattern": "*",
        "event": "keydown",
        "selector": "textarea, input",
        "expression": "this.value.length",
        "greaterOrEqual": 2000
      }

Или

      {
        "rule_id": 666,
        "url_pattern": "*",
        "event": "keydown",
        "selector": "textarea, input",
        "evalInTargetContext": "this.value.length >= 2000"
      }

Под expression я имею в виду, что это не eval, а строка, которую мы сами умеем парсить.

Писать более абстрактно:

// type of achievement: typying-in
{
  "rule_id": 1,
  "type": "type-in",
  "selector": "smth", // если нужно выбрать к каким элементам применить монитор
  "length": "gt 1000"
}

Сам iTracker, отвечающий за DOMEvent, знает что такое type-in rule и подвешивается на правильные события, на нужные элементы и проверяет факт чего-то, в данном случае length, можно добавить ещё ключевые слова, чтобы следить за другими параметрами в типе type-in.

Очень неабстрактно. Устаним правила придумывать. И путаться в них.

Как по твоей логике проверить тайтл страницы?

Разные сущности делать:
type-in-rule
dom-window-rule
...

У каждого будет набор свойств, которые будут ключевыми словами, а эти ключевые слова iTracker будет уже сам знать как обрабатывать.

Но это, конечно, на подумать ещё, как мы вплотную подойдем к реализации не только переходов по страницам.