AppleScripttel igenis lehet blogba postolni, csak kicsit időigényes rájönni hogyan. (az első sikeres tesztszöveg)
A lelkes rss-ben olvasók ma már több marhasággal találkozhattak itt. Volt már kint Five Days in July by Blue Rodeo, Array és egyszer egy olyan is, hog {myPost}. Most meg is magyarázom.
Olvastam a napokban, hogy az AppleScript viszonylag régen támogatja az XML-RPC-t, így elvben akár szövegszerkesztőből is küldhetek bejegyzést a worldshotsra. A Scriptbuilders-en voltak is kidolgozott megoldások ezer évvel ezelőttről Manila és Blogger blogokhoz. A WordPressem viszont Metaweblog API-t használ, így a meglévők toldozgatása helyett érdemesebbnek tűnt összelegózni valami teljesen újat. Ami abból kiindulva, hogy se az AppleScripthez se az XML-RPC-hez nem értek túlzottan, legalábbis merészség volt.
Egy AS tutorial és egy állítólag hibás, gyakorlatban remekül működő szkriptdarab segítségével a bloggal már tudtam kommunikálni, a TextEditből való szöveg kiemelést pedig nem volt nehéz megírni.
Egyébként az AS halál pontosan olyan, mintha az ember a szerecsen szolgáját instruálni pidzsin angolul.
Az eredmény a fent látható nagyon igaz tesztmondat, és a most következő szkript: tell application “TextEdit” set myPost to text of document 1 set myTitle to text returned of (display dialog “Mi legyen a post címe?” default answer “teszt”) end tell
tell application “http://www.worldshots.hu/xmlrpc.php” set returnValue to call xmlrpc {method name:”metaWeblog.newPost”, parameters:{“default”, “felhasznalonev”, “jelszo”, {description:myPost, title:myTitle}, “true”}} end tell
A mostani primitív állapotában csak új postot lehet vele létrehozni, és csak MetaWeblog API-t használó blogon. Kis drótozással, Blogger API-ra is átírható, amit például a régi Freeblog használt (az újról nem tudok semmit). És hogy minden kredit kiosztassék: az AS-HTML konverziót Jonathan Nathan appjával végeztem el.
aha. és ez az elvi dicsőségen kívül mire jó?
továbbfejleszthető.
(pl: TITLE kezdetű sor lészen a bejegyzés címe, TRACKBACK mellett található címeket automatikusan visszapingeli, ésígytovább. A lehetőségek határtalanok!)
Btw, az Applescript hosszú ékezet problémáját így ki lehet kerülni?
zsoltu: Nem annyira dicsőség, mint inkább siker. Szórakoztató applescripttel játszani, de az az igazi, ha a végén működik is. Ez egyelőre arra bizonyíték, hogy lehet bármilyen szöveget kezelő cocoa appból írni. A TextEdit csak azért került képbe, mert kéznél volt, több értelme van SubEthaEditre átírni a szkriptet. Az már tud olyanokat - tagszínezés -, ami a WP editorában nincs benne.
gazs: Vagy akár az ablak nevéül szolgáló szöveg is mehet title-be - set myTitle to name of document 1 -, csak ki kell találni, hogyan szabaduljunk meg a kiterjesztéstől… Jó lesz még ez játszani.
Igen, az ékezetes problémát megkerüli. A post utolsó három szerkesztése annak volt köszönhető, hogy az applescript:// link halott volt, amíg ékezetes betűk is voltak a szövegben. TextEditből viszont szépen áthozta a fenti mondatot.
kiterjesztéstől megszabadulás: Van valahol egy scriptem… Ami a kiterjesztés alapján ellenőrzi, feldolgozza-e a fájlt. Valami olyasmi, hogy a pont (.) karaktert kell beállítani delimiter-nek, s a pont előtti lesz az egyik eleme az így létrejövő listának, a pont utáni a második. A másodikkal itt most nem kell foglalkozni, set myTitle to elsoItem. Engem a nyelve inkább a Zork és egyéb szöveges kalandjátékok utasításaira emlékeztet…
Hurrá! Ennyi időd van? :-D
Tetszik egyébként. Majd, ha tökélyre fejlesztetted, akkor kipróbálom én is. :-)
Gratu…
Mint ahogy anno a hires elelmiszeripari franchise jelszava volt: Wolf - az elso farkas, aki sutni tud; ezennel felhatalmazlak a Kelt - az elso bolcsesz aki programozni tud cim jogos hasznalatara :)
Ugye mint azt bash.hu-n is olvashatjuk:
]@Jo-Hans[ annyi eselyetek van mint bolcsesznek a command promptnal
(Megtalaljuk a 3035-os postban)
AppleScripttol a frasz jon az emberre neha (pl. mai napig nem tudom, ha meghivok egy scriptet adiumbol, akkor az honnan fogja tudni a meghivasanak korulmenyeit - pl. miert lett meghivva), meg esemenyvezerelt programozast is evekig probaljak belenevelni az emberkekbe a BME-n, ehhez kepest eleg jol megoldottad :)
Kobak: Annyi időm még nekem sincs, amennyi ráment erre, de érdekes volt a probléma, az ilyeneknél pedig hajlamos vagyok leragadni. Mostanra már azt is tudom, hogy a létező kategóriák közé hogy lehet besorolni a postot. :)
Aadaam: Pirulok ám. Ettől függetlenül a programozás még messze van, majd ha lesz neki felülete, csillivillije, meg minden…
Viccen kívül, a nap felismerése, hogy az AppleScript Studio nem egy app, hanem az ha Xcode-ban és Interface Builderben raksz össze AS appokat.
Juteszembe bölcsész, Doransky digitális bölcsész kiáltványát olvastad? :)
áh, minden nyelv szar és érthetetlen, amiben nincsenek megszámozva a sorok:) le az objektumorientált ellenforradalmi erőkkel! 60671 bytes free! ööö free Satpal Ram!
A scriptnek (sőt, az AppleScriptnek általában, mint rá kellett jöjjek) egyetlen nagy problémája, hogy képtelen észrevenni a proxy szerver beállításait, s aztán csodálkozik, ha nem tud felmenni a netre nélküle. Ráguglizva se találtam megoldást erre… Kár.
véb: Továbbá risc procit és 3d guit mindenkinek! :)
gazs: Rágugliztam én is, de egyrészt 1999-es hibaleírásokat találtam az xmlrpc.com-on os 9.1-hez tartozó megoldással, másrészt egy developer note-ot, mely szerint amivel szembesültél azt kijavították a Pantherben.
Innentől csak olyan vad ötleteim vannak, hogy másik, konfigolható xml-rpc kliens a gépre. Vagy topik a beszmeken. ;)
Most akkor lehet, hogy bebuktam. Ezt a scriptet már ki se próbáltam, lévén már bele is nyugodtam saját próbálkozásaimból levont következtetésembe, hogy proxy mögül nem tud kikandikálni az AppleScript, meg blogom se WordPress-es (még)… Ezek szerint XML-RPC tudja kezelni a proxy-t, az URL Access Scripting (fájlok letöltéséhez használható alapbővítmény) meg nem. My bad…
Az a baj, hogy nincs lehetőségem jó kis felsőoktatásbeli proxy mögé bemászni - négy év kollégium után albérlet jön idén - és kipróbálni, mit enged meg.
Próbálj meg postolni a WS playgroundra, hátha az xmlrpc legalább kimegy. (Letöltéshez pedig wget - használja a fink proxybeállításait - és mondjuk Visor.)
Koszi az ajanlast….