Skip to content

Applescript és XML-RPC

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.

13 Comments

  1. zsoltu wrote:

    aha. és ez az elvi dicsőségen kívül mire jó?

    Wednesday, August 9, 2006 at 17:58 | Permalink
  2. gazs wrote:

    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?

    Wednesday, August 9, 2006 at 18:02 | Permalink
  3. Kelt wrote:

    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.

    Wednesday, August 9, 2006 at 18:45 | Permalink
  4. gazs wrote:

    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…

    Wednesday, August 9, 2006 at 19:03 | Permalink
  5. kobak wrote:

    Hurrá! Ennyi időd van? :-D

    Tetszik egyébként. Majd, ha tökélyre fejlesztetted, akkor kipróbálom én is. :-)

    Wednesday, August 9, 2006 at 23:48 | Permalink
  6. Aadaam wrote:

    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 :)

    Thursday, August 10, 2006 at 00:07 | Permalink
  7. Kelt wrote:

    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? :)

    Thursday, August 10, 2006 at 01:16 | Permalink
  8. véb wrote:

    á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!

    Thursday, August 10, 2006 at 19:03 | Permalink
  9. gazs wrote:

    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.

    Thursday, August 10, 2006 at 19:37 | Permalink
  10. Kelt wrote:

    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.

    SOAP and XML-RPC requests now respect system global proxy settings

    Innentől csak olyan vad ötleteim vannak, hogy másik, konfigolható xml-rpc kliens a gépre. Vagy topik a beszmeken. ;)

    Thursday, August 10, 2006 at 20:50 | Permalink
  11. gazs wrote:

    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…

    Thursday, August 10, 2006 at 21:40 | Permalink
  12. Kelt wrote:

    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.)

    Friday, August 11, 2006 at 01:23 | Permalink
  13. MiszterX wrote:

    Koszi az ajanlast….

    Friday, August 11, 2006 at 14:50 | Permalink

One Trackback/Pingback

  1. AppleScript és XML-RPC 2. - Worldshots on Saturday, August 12, 2006 at 01:24

    […] A metaWeblog.newPost-ot meghívó szkript paraméterei között be lehet állítani, hogy az új post milyen kategóriákba tartozzon. A parameters sor így néz ki: […]