Rada pro Automator

Tato sekce je určena všem začínajícím Apple uživatelům, kteří potřebují pomoc a nejsou si jistí, do které ze sekcí jejich dotaz přesně patří. Pokud se Vám nepodařilo pomocí vyhledávání najít řešení pro Váš problém, tak neváhejte a napište svůj dotaz právě sem. Neexistují hloupé otázky, jen hloupé odpovědi.

Moderátoři: Alisczech, RadimSvidrnoch, emkei, MichalM.Mac, Streeter, Renik, zmiy, dandas

Odpovědět
Uživatelský avatar
Miro_CZ
Příspěvky: 411
Registrován: 29 lis 2012 15:22

Rada pro Automator

Příspěvek od Miro_CZ » 06 lis 2015 20:54

Dobrý večer,

je možné nějak v aplikaci Automator (nebo nějaké jiné, podobné) vytvořit funkci/aplikaci, která by uměla určitým způsobem upravit textový soubor? Poslední dobou mi nejde v přehrávači MPlayerX přidat k videu titulky, pokud nejsou v Unicode 8 kódování, tudíž musím všechny ručně přepisovat a poslední dobou mě to přestává bavit.
Zde je popis kroků, které by to mělo dělat:
1) Otevřít soubor v TextEdit
2) Duplikovat
3) Uložit...
4) Umazat z názvu (kopie) na konci názvu
5) Změnit kódování na Unicode 8
6) Potvrdit uložení

Je možné něco takového vytvořit? S Automatorem jsem nikdy nedělal, tak netuším jaké jsou jeho možnosti.


Předem děkuji za odpovědi
iPhone 3GS Black - 4S White - 5C White - 5S Silver - 8 Space Gray - 12 Pro Pacific Blue - 13 Pro Sierra Blue - 14 Pro Space Black
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020

Uživatelský avatar
MichalM.Mac
Příspěvky: 3342
Registrován: 30 črc 2012 11:03
Kontaktovat uživatele:

Re: Rada pro Automator

Příspěvek od MichalM.Mac » 06 lis 2015 22:32

Placená aplikace Subtitles.app na automatické stažení titulků umí konvertovat rovnou po stažení. Doporučuji.

Mam na to vyrobený shell skript, který jsem dal do automatoru.
Jako argumenty to bere buď přímo soubory titulků nebo složky, ve kterých je má vyhledávat.

Kód: Vybrat vše

#!/bin/bash
# Author: MichalM.Mac

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Config

export ENCODING_FROM='CP1250'
export ENCODING_TO='UTF-8'
SUB_EXTENSION='.srt'

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

error_printer() {
  echo "$@" 1>&2;
}

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

convert_sub_encoding(){
  if file --mime-encoding "$1"  | grep -iq "$ENCODING_TO"; then
    error_printer "Error: File $1 is alredy encoded in $ENCODING_TO"
    return
  fi
  
  mv "$1" "${1}_temp"
  iconv -f "$ENCODING_FROM" -t "$ENCODING_TO" "${1}_temp" > "$1" && rm "${1}_temp"
}

find_subs(){
  export -f error_printer
  export -f convert_sub_encoding
  find "$1" -name "*${SUB_EXTENSION}" -exec bash -c 'convert_sub_encoding "$0"' {} \;   
}

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Main Body

if [ $# -eq 0 ]; then
  echo "Error: No Aruments specified -> Nothing to do."  
fi     
 
# Postupné zpracování všech dodaných parametrů
while [ $# -gt 0 ]
do
  if [ -d "$1" ]; then
    find_subs "$1"
  elif [ -f "$1" ]; then
    convert_sub_encoding "$1"
  else
    error_printer "Error: $1 is not valid file or directory"  
  fi
       
  shift
done
Případně to můžeš spouštět z terminálu.
Přílohy
Screen Shot 2015-11-06 at 22.32.35.png

Uživatelský avatar
Miro_CZ
Příspěvky: 411
Registrován: 29 lis 2012 15:22

Re: Rada pro Automator

Příspěvek od Miro_CZ » 07 lis 2015 11:29

Děkuji za tip na aplikaci, ale raději si vybírám titulky sám, přece jenom jsou tady kvalitnější a méně kvalitní překladatelé..

Děkuji za kód, jen bych potřeboval trochu poradit, nasměrovat, co s ním mám dělat. Jak jsem psal výše, s Automatorem jsem nikdy nedělal..
iPhone 3GS Black - 4S White - 5C White - 5S Silver - 8 Space Gray - 12 Pro Pacific Blue - 13 Pro Sierra Blue - 14 Pro Space Black
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020

Uživatelský avatar
MichalM.Mac
Příspěvky: 3342
Registrován: 30 črc 2012 11:03
Kontaktovat uživatele:

Re: Rada pro Automator

Příspěvek od MichalM.Mac » 07 lis 2015 13:30

Vytvoř si workflow podle obrázku. Podstatné je, aby Akce, která spouští kód (Run Shell script), dostala na vstup soubory.
Pokud to bude obyčejné workflow, budeš tam potřebovat něco jako Ask for Finder Items.

V mém případě jde o Service workflow (služba), které spustím tak, že ve Finderu označím soubor(y), kliknu pravým tlačítkem myši -> Services -> UTFySubs (moje služba z Automatoru).

Přidávám ještě příklad pro Folder Action, kdy se skript spouští na všechny nově připadané soubory ve specifikované složce. Ty dvě filtrovací akce jsou tam asi trochu navíc, když je to ošetřeno ve skriptu, ale pro jistotu proč ne.
Screen Shot 2015-11-07 at 13.34.23.png

Uživatelský avatar
Miro_CZ
Příspěvky: 411
Registrován: 29 lis 2012 15:22

Re: Rada pro Automator

Příspěvek od Miro_CZ » 07 lis 2015 15:15

Super děkuji moc. Moje první použití Automatoru bylo úspěšné a titulky se převedou dvěma kliknutími :)
iPhone 3GS Black - 4S White - 5C White - 5S Silver - 8 Space Gray - 12 Pro Pacific Blue - 13 Pro Sierra Blue - 14 Pro Space Black
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020

PatkaJR
Příspěvky: 813
Registrován: 30 bře 2014 12:49
Bydliště: Praha

Re: Rada pro Automator

Příspěvek od PatkaJR » 07 lis 2015 15:32

MichalM.Mac píše:Placená aplikace Subtitles.app na automatické stažení titulků umí konvertovat rovnou po stažení. Doporučuji.
Za 22$ se mi to nechce kupovat :lol: :lol:
Macbook Air 2014, 4GB RAM, 128GB SSD, i5 - macOS Sierra
Apple iPhone 6S Plus 16GB - iOS 10
iPhone 4 16GB White - iOS 7.1.2
Beats SOLO 2 Wireless
🔜Apple Watch Gold

Křemíkové nebe:
iPad 2 16GB
iPhone 5 16GB

MichalJ
Příspěvky: 1053
Registrován: 31 črc 2012 14:16
Bydliště: Slezsko

Re: Rada pro Automator

Příspěvek od MichalJ » 10 lis 2015 23:33

PatkaJR píše:
Za 22$ se mi to nechce kupovat :lol: :lol:
Tohle nechápu. Pokud to dělá co potřebujete tak 22 USD není tak moc.

PatkaJR
Příspěvky: 813
Registrován: 30 bře 2014 12:49
Bydliště: Praha

Re: Rada pro Automator

Příspěvek od PatkaJR » 10 lis 2015 23:41

Vyřešil jsem to jinak. Nainstaloval jsem si rozšíření do VLC na stahování titulků a zdarma.
Macbook Air 2014, 4GB RAM, 128GB SSD, i5 - macOS Sierra
Apple iPhone 6S Plus 16GB - iOS 10
iPhone 4 16GB White - iOS 7.1.2
Beats SOLO 2 Wireless
🔜Apple Watch Gold

Křemíkové nebe:
iPad 2 16GB
iPhone 5 16GB

Uživatelský avatar
MichalM.Mac
Příspěvky: 3342
Registrován: 30 črc 2012 11:03
Kontaktovat uživatele:

Re: Rada pro Automator

Příspěvek od MichalM.Mac » 11 lis 2015 00:21

Dobré pro tebe. Co třeba zmínit, jak se rozšíření jmenuje? ;-)

PatkaJR
Příspěvky: 813
Registrován: 30 bře 2014 12:49
Bydliště: Praha

Re: Rada pro Automator

Příspěvek od PatkaJR » 11 lis 2015 00:26

Macbook Air 2014, 4GB RAM, 128GB SSD, i5 - macOS Sierra
Apple iPhone 6S Plus 16GB - iOS 10
iPhone 4 16GB White - iOS 7.1.2
Beats SOLO 2 Wireless
🔜Apple Watch Gold

Křemíkové nebe:
iPad 2 16GB
iPhone 5 16GB

Uživatelský avatar
Miro_CZ
Příspěvky: 411
Registrován: 29 lis 2012 15:22

Re: Rada pro Automator

Příspěvek od Miro_CZ » 25 úno 2021 19:20

Ahoj, zkusím to tady po dlouhý době oživit. Přešel jsem na nový Mac a nedaří se mi v Automatoru vytvořit tohle workflow. Zkopíroval jsem kód od Michala, uložil jako Quick Action, služba se mi zobrazí při kliku pravým tlačítkem na soubor s titulky, něco asi proběhne, vyskočí mi notifikace, že se titulky převedly, ale se souborem jako takovým se nic nestane.

Nevíte někdo prosím, kde by mohl být problém? Je možné, že by se něco změnilo v OS Big Sur, že by shell skript najednou nefungoval?
iPhone 3GS Black - 4S White - 5C White - 5S Silver - 8 Space Gray - 12 Pro Pacific Blue - 13 Pro Sierra Blue - 14 Pro Space Black
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020

Uživatelský avatar
Miro_CZ
Příspěvky: 411
Registrován: 29 lis 2012 15:22

Re: Rada pro Automator

Příspěvek od Miro_CZ » 25 úno 2021 21:58

Vyřešeno. Smazal jsem všechno kromě samotného shell skriptu s Michalovým kódem a notifikace na konci a už to funguje. Z nějakého důvodu se tomu najednou přestalo líbit to filtrování na začátku.
iPhone 3GS Black - 4S White - 5C White - 5S Silver - 8 Space Gray - 12 Pro Pacific Blue - 13 Pro Sierra Blue - 14 Pro Space Black
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020

Uživatelský avatar
Miro_CZ
Příspěvky: 411
Registrován: 29 lis 2012 15:22

Re: Rada pro Automator

Příspěvek od Miro_CZ » 05 pro 2021 16:02

Ahoj, zkusím to tady ještě s jedním dotazem. Poslední dobou se začalo v titulcích objevovat {\an8} což by mělo zobrazit titulky v horní straně obrazovky, ale některé přehrávače si s tím neví rady a celý řádek s titulky to vynechá. Potřeboval bych tedy nějak do automatoru přidat funkci "najít a nahradit". Použil jsem AppleScript viz níže, ale zasekne se to na parametru udávajícím vyhledávaný string "{\an8}" a vyskočí chyba "Syntaktická chyba. Očekáváno: „"“, ale nalezeno: neznámý token." Umíte mi někdo prosím poradit, jak skript opravit, aby fungoval?

Kód: Vybrat vše

use framework "Foundation"
use scripting additions

property NSString : a reference to current application's NSString

set stringToFind to "{\an8}"
set stringToReplace to ""

set theTextFile to (choose file of type {"public.plain-text"} default location (path to desktop))

set theContent to read theTextFile as text
set newContent to my replace_text(theContent, stringToFind, stringToReplace)

try
	set fileRef to (open for access theTextFile with write permission)
	set eof of fileRef to 0 # truncate file
	write newContent to fileRef
	close access fileRef
on error
	close access fileRef
end try
return

on replace_text(atext, xfind, xreplace)
	return ((NSString's stringWithString:atext)'s stringByReplacingOccurrencesOfString:xfind withString:xreplace) as text
end replace_text
iPhone 3GS Black - 4S White - 5C White - 5S Silver - 8 Space Gray - 12 Pro Pacific Blue - 13 Pro Sierra Blue - 14 Pro Space Black
iPad Air 2 Wi‑Fi + Cellular 64GB Space Gray
MacBook Air 13" 2012 - Air 13" M1 2020

Odpovědět