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řadil štítek. Mohl jsem tak roztřídit co číst a co vyhodit. Pokud používáte Gmail, můžete automatický filtr také vyzkoušet.
Skript nerozlišuje odesilatele, protože mám speciální gmail adresu jen pro geocaching. Pokud vám do gmailu chodí i další zprávy, může se stát, že budou označeny tímto štítkem
Postup
- Spusťte Google Disk a vytvořte nový soubor Google Apps Script. Soubor jsem si pojmenoval „gmail filtr“.
- Do vytvořeného souboru překopírujte následující kód. Nebo si kód zkopírujte z repozitáře na GitHub.
// 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,}.{1,40}\s{1,}(This)/);
Logger.log(tmp);
// Pokud odpovídá pravidlu, přidá štítek
if (tmp)
label.addToThread(threads[i]);
} // Konec podmínky
} // Konec cyklu
}
Kód obsahuje následující funkce:
- getShortLogLabel – vytvoří v Gmailu štítek pojmenovaný „TFTC“, tímto štítkem budou označovány všechny krátké e-maily.
- removeShortLogLabels – odebere všechny TFTC štítky. Používal jsem při testování podmínek.
- addShortLogLabel – kontroluje e-maily a přidává TFTC štítek. Tato funkce bude spouštěna automaticky.
- Klikněte na „Spouštěče aktuálního projektu“ (tlačítko s hodinami) a nastavte spouštění funkce addShortLogLabel.
- Google vás upozorní, že zadaný script není autorizovaný a že mu musíte povolit přístup do aplikace Gmail.
- Klikněte na rozšířené možnosti a přejděte na nastavení nově vytvořené aplikace.
- Zkontrolujte, pro kterou aplikaci povolujte jaká oprávnění. A klikněte na povolit.
- 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.
- Přepněte se do Gmailu a v nastavení štítku zvolte barvu štítku, jaká vám vyhovuje
- Pokud chcete funkčnost celého scriptu otestovat hned, v editoru scriptu spusťte ručně funkci addShortLogLabel.
- 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. 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.
Pingback: Ohlédnutí za létem 2020 -