Filtr krátkých geocaching logů

Pokud hrajete geocaching a založili jste několik kešek, pravděpodobně jste již někdy dostali log, který vás tak úplně nezajímal. Myslím tím krátké vzkazy jako: "TFTC", "Díky za cache", "Díky", případně jen smajlík. Když nějakou dobu logy nečtete, máte najednou plnou schránku a stojíte před rozhodnutím, jestli logy číst, mazat nebo nějak roztřídit. Vytvořil jsem krátký script, který logům kratším než 40 znaků přiřadí štítek. Snadněji se tak rozhodnete, co číst a co vyhodit. Pokud používáte Gmail, můžete automatický filtr také vyzkoušet.

1. Spusťte Google Disk a vytvořte nový soubor Google Apps Script


2. Do souboru překopírujte následující kód:
 // Jméno štítku, kterým budou označeny nevyřešené emaily  
 var SHORT_LOG_LABEL_NAME = 'TFTC';   
 // Funkce vytvoří nový štítek, pokud ještě neexistuje  
 function getShortLogLabel() {  
  var label = GmailApp.getUserLabelByName(SHORT_LOG_LABEL_NAME);  
  if (label == null)  
    label = GmailApp.createLabel(SHORT_LOG_LABEL_NAME);  
  return label;  
 }  
 // Odebere štítek všem e-mailům   
 function removeShortLogLabels() {  
  var label = getShortLogLabel();  
  var threads = GmailApp.search('label:' + SHORT_LOG_LABEL_NAME);  
  for (var i = 0; i < threads.length; i++)  
    label.removeFromThread(threads[i]);  
 }  
 // Přidá štítek k nejnovějším 200 e-mailům, které vyhovují regulárnímu výrazu   
 function addShortLogLabel() {  
  var label = getShortLogLabel();  
  // čísla 0, 200 určují začátek a konec vyhledávání. Maximum je 500  
  var threads = GmailApp.getInboxThreads(0, 200);  
  // Projde všechny e-maily v rozsahu  
  for (var i = 0; i < threads.length; i++) {  
   var tmp,  
    message = threads[i].getMessages()[0],  
    content = message.getPlainBody();  
   // Zkontroluje, jestli obsah e-mailu odpovídá zadanému pravidlu  
   if (content) {  
    // Regulární výraz - číslice 40 určuje délku logu, kratší logy než 40 znaků jsou označeny štítkem  
    tmp = content.match(/(:\*)\s.{1,70}\s{1,}(This)/);  
    // Pokud odpovídá pravidlu, přidá štítek  
    if (tmp)  
     label.addToThread(threads[i]);  
    }    
   } // Konec podmínky  
  } // Konec cyklu  

Kód vytvoří 3 funkce.
  1. getShortLogLabel - která vytvoří v Gmailu štítek pojmenovaný "TFTC", tímto štítkem budou označovány všechny krátké e-maily
  2. removeShortLogLabels - která odebere všechny TFTC štítky. Používal jsem při testování podmínek
  3. addShortLogLabel - která kontroluje e-maily a přidává TFTC štítek.Tato funkce bude spouštěna automaticky.
3. Klikněte na "Spouštěče aktuálního projektu" (tlačítko s hodinami) a nastavte spouštění funkce addShortLogLabel. 


4. Google vás upozorní, že zadaný script není autorizovaný a že mu musíte povolit přístup do aplikace Gmail.


5. Klikněte na rozšířené možnosti a přejděte na nastavení nově vytvořené aplikace.


6. Zkontrolujte, pro kterou aplikaci povolujte jaká oprávnění. A klikněte na povolit.
7. Po té, co vytvořenému scriptu přidělíte oprávnění přístupu k vašemu Gmail účtu, spusťte funkci getShortLogLabel, která vytvoří štítek "TFTC", případně si na druhém řádku kódu pojmenujte štítek tak, jak vám vyhovuje.

8. Přepněte se do Gmailu a v nastavení štítku zvolte barvu štítku, jaká vám vyhovuje

9. Pokud chcete funkčnost celého scriptu otestovat hned, v editoru scriptu spusťte ručně funkci addShortLogLabel.

10. Pokud budete v budoucnu chtít tomuto scriptu odebrat přístup k vašemu Gmail účtu, můžete tak učinit v nastavení Google účtu, na adrese https://myaccount.google.com/permissions
Doporučuji zde rovnou zkontrolovat, kterým aplikacím jste již přístup udělili. Nepoužívaným aplikacím přístup odeberte. Stejně tak zkontrolujte, na které web se přihlašujete pomocí google účtu


Komentáře