Minulla olisi tarve sellaiselle toiminnallisuudelle, jossa saapuvan sähköpostin liitetiedostosta poimitaan liitteen nimi ja osa ko. merkkijonosta liitetään URLiin (http://xxx.sss/zzz=<merkkijono>) ja polkaistaan Safarissa tai muussa selaimessa uusi ikkuna auki.
Kuvittelisin, että tekemällä tuollaiset temput osaava AppleSript-ohjelma, sen voisi kytkeä 'avaamaan' ko. liitetiedostot, jotka voidaan tunnistaa nimen loppuosasta (.DRF).
Kyseessä on siis liitetiedostona tuleva 'hyperlinkki'viite, jota pitää laajentaa, jotta se toimisi hyperlinkkinä. Liitetiedoston sisältäkin löytyy toki sama informaatio tekstinä kuin minkä voi poimia nimen alusta.
Mistäs vois lähteä liikkeelle?
Mailin liitetiedoston käsittelyskripti - mistä aloittaa
Xcode, Mac OS X Server sekä muuta hauskaa ja hyödyllistä
5 viestiä
• Sivu 1/1
-
- Viestit: 12817
- Liittynyt: 24.4.2005 klo 23.47
- Paikkakunta: Helsinki
Mailin liitetiedoston käsittelyskripti - mistä aloittaa
Viesti Kirjoittaja homenamsi »
-
- Viestit: 90
- Liittynyt: 13.7.2005 klo 16.18
- Paikkakunta: Hämeenlinna
Re: Mailin liitetiedoston käsittelyskripti - mistä aloittaa
Viesti Kirjoittaja trosberg »
Aloittaisin hakemalla liitetiedoston polun. Kirjoitin kokeeksi sellaisen skriptin. Mitähän haluat tiedostolla tehdä?
Koodi: Valitse kaikki
(*
Select an email message in mailbox listing in Apple Mail.
Run this script e.g. from Scripts menu to get the file reference to
email attachment of the selected message. Tuomas Rosberg 2009.
*)
set l to {} -- an empty list
tell application "System Events"
set mdf to folder "Mail Downloads" of folder "Library" of home folder of user domain
end tell
tell application "Mail"
set m to selection -- This returns a list even if there is only one message selected
set m to first item of m
set a to every mail attachment in m
repeat with i in a
if downloaded of i is true then -- It is local file
set n to name of i
tell application "System Events"
set r to item n of mdf
set l to l & POSIX path of r
end tell
else -- Nothing. It did not work to just open mail attachment. Weird.
end if
end repeat
end tell
set tid to AppleScript's text item delimiters
set AppleScript's text item delimiters to return
set l to l as string
set AppleScript's text item delimiters to tid
display dialog ¬
"The attachments are " & return & ¬
l & return & return & ¬
"Copy to clipboard?" buttons {"Exit", "OK"} default button 2
if button returned of result is "OK" then
set the clipboard to l
end if
-
- Viestit: 937
- Liittynyt: 5.6.2006 klo 13.48
- Paikkakunta: Helsinki
Re: Mailin liitetiedoston käsittelyskripti - mistä aloittaa
Viesti Kirjoittaja morbusg »
jos MDA:na, procmailillä luonnistuu myöskin.
-
- Viestit: 12817
- Liittynyt: 24.4.2005 klo 23.47
- Paikkakunta: Helsinki
Re: Mailin liitetiedoston käsittelyskripti - mistä aloittaa
Viesti Kirjoittaja homenamsi »
Kiitokset Tuomas, juuri tuollaisesta on kysymys.trosberg kirjoitti:Aloittaisin hakemalla liitetiedoston polun. Kirjoitin kokeeksi sellaisen skriptin. Mitähän haluat tiedostolla tehdä?Koodi: Valitse kaikki
...
Ilmeisesti tuo muuttuja 'name' sisältää sen liitetiedoston nimen tai listan nimiä. Tuota koko polkua en siis tarvitse.
Liitetiedoston nimi on aina muotoa: 'R-nnnnnn-<vaihtuva teksti eli pitempi nimi>'. Tällä hetkellä nnnnnn on 1-6 -numeroinen kokonaisluku ja jossain vaiheessa 1-7 -numeroinen miljoonan tullessa täyteen.
Tuo 'nnnnnn[n]' on juuri se merkkijono, joka pitäisi saada siirtymään Safarin URL-kenttään vakiomuotoisen URLin perään:
Koodi: Valitse kaikki
http://xxx.sss/zzz=nnnnnn[n]
Enköhän tuossa pääse omin avuin eteenpäin. Osamerkkijonon poiminta tavuviivojen välistä ja liittäminen URLin vakio-osan perään vaikuttaa melko suoraviivaiselta. Tuo vaihtuvapituisuus on ehkä haaste...
Tuo Procmail voi olla mielenkiintoinen jossain muussa yhteydessä.
-
- Viestit: 90
- Liittynyt: 13.7.2005 klo 16.18
- Paikkakunta: Hämeenlinna
Re: Mailin liitetiedoston käsittelyskripti - mistä aloittaa
Viesti Kirjoittaja trosberg »
Jos sen tiedoston voisi avata suoraan Safariin niin eo. skriptin toiminnallisuus olisi:
Mutta jos siis nimen alusta pitäisi poistaa "R-" ja lopusta ".DRF", sitten lisätä tuo http-rimssu (Testaamatta):
Alkuperäinen kysymyksesi oli, mistä alkaa tällaisten pätkien kirjoittaminen. Voisi vastata että se alkaa Skriptieditorista, avaamalla skriptattavan ohjelman sanakirja. AppleScriptin hyvä puoli on luettavuus lukiopohjalta, kirjoitettavuus taas ei ole hyvä. Useimmiten skriptin ajo pysähtyy siihen, että muuttuja ei ole oikean tyyppinen. Tyypin muutoksia pitää sitten opetella.
Eo. skriptissä kaikki alkaen "set AppleScript's text item delimiters" oli vain vasteen muodostamista käyttäjälle, ne voit sheivata. Jos tahdot että käydään lopullinen skriptisi läpi, niin lähetä se ketjun jatkoksi.
Tuomas
Koodi: Valitse kaikki
set n to name of i
tell application "Finder"
open item n of mdf using "Safari"
end tell
Koodi: Valitse kaikki
set n to name of i
set n to chars 3 to -4 of n
-- in AppleScript, the last character of a string is called -1
set uri to "http://xxx.sss/zzz=" & n
tell app "Safari"
make new document with properties {URL:uri}
end tell
Eo. skriptissä kaikki alkaen "set AppleScript's text item delimiters" oli vain vasteen muodostamista käyttäjälle, ne voit sheivata. Jos tahdot että käydään lopullinen skriptisi läpi, niin lähetä se ketjun jatkoksi.
Tuomas
5 viestiä
• Sivu 1/1
Palaa sivulle “Ohjelmointi, skriptit ja palvelimet”
Hyppää
- Yleiset aiheet
- ↳ Ajankohtaista Apple-maailmasta
- ↳ Käyttöjärjestelmät
- ↳ Ohjelmat
- ↳ Yleiskeskustelu
- Mac ja oheislaitteet
- ↳ Yleiskeskustelu laitteista
- ↳ MacBook, MacBook Pro ja MacBook Air
- ↳ iMac
- ↳ Mac mini
- ↳ Mac Pro ja Mac Studio
- ↳ Ongelmia Macin kanssa?
- iPhone, iPad ja Apple Watch
- ↳ iPhone-, iPad- ja Apple Watch -laitekeskustelu
- ↳ iPhone-, iPad- ja Apple Watch -ohjelmat sekä iOS
- ↳ Ongelmia iPhonen, iPadin tai Apple Watchin kanssa?
- Huviksi ja hyödyksi
- ↳ Off-topic
- ↳ Kuva ja graafinen suunnittelu
- ↳ Audio ja musiikki
- ↳ Video, televisio ja elokuvat
- ↳ Pelit ja pelaaminen
- ↳ Ohjelmointi, skriptit ja palvelimet
- ↳ Tietoturva ja varmuuskopiointi
- ↳ Verkot, mobiilidata ja muut puhelimet
- ↳ Retronurkka
- ↳ Foorumin ylläpito
- Kauppapaikka
- ↳ Myydään Mac
- ↳ Myydään iPhone, iPad ja iPod
- ↳ Myydään muut Applen tuotteet
- ↳ Myydään muuta tietotekniikkaa
- ↳ Ostetaan Mac
- ↳ Ostetaan iPhone, iPad ja iPod
- ↳ Ostetaan muut Applen tuotteet
- ↳ Ostetaan muuta tietotekniikkaa
- ↳ Vaihdetaan, annetaan, työtä haetaan ja tarjotaan
- ↳ Kauppapaikan keskustelu ja hintavinkit