JSON-RPC APIt használjuk a curl fedőnév alatt futó szamurájkarddal:
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": 1}' http://IPOfMyXBMCMachine:8080/jsonrpc > /dev/null 2>&1
JSON-RPC APIt használjuk a curl fedőnév alatt futó szamurájkarddal:
curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0", "method": "VideoLibrary.Scan", "id": 1}' http://IPOfMyXBMCMachine:8080/jsonrpc > /dev/null 2>&1
Summa summarum, a Raspberry Pi-n a PLAY command kiadása után több, mint 10 másodpercig tart, mire elindul a mozi.]]>
A feladat Nemrég vettem egy Mac minit media centernek, amibe a hétvégén Dr. iPod beszerelt egy SSD-t. A már benne levő hard disken szépen felkonfigurálva ott figyelt az operációs rendszer és az egész media center librarystől, így most az lenne az optimális, ha ez mind gyorsan átköltözne az SSD-re.
A probléma Filmünk van, ráadásul mondjuk sok, feliratunk meg nem van, főleg nem több nyelven.
sudo ./setup.py install
#!/bin/sh for F in `ls -1 *.mp4 *.avi *.mkv *.m4v *.mov` do echo Processing "$F"... BASE=${F%.*} if [ -f "$BASE.hu.srt" -a -f "$BASE.en.srt" ] then echo "Subtitles exists - skipping download." else echo "Trying to download subtitles..." /usr/local/bin/subliminal -m -l hu -l en "$F" fi done
#!/bin/sh find . \( -name "*.mp4" -or -name "*.avi" -or -name "*.mkv" -or -name "*.m4v" -or -name "*.mov" \) -and \( ! -iname ".*" \) -print0 | while read -rd $'\0' F; do BASE=${F%.*} echo Processing "$F"... if [ ! -f "$BASE.hu.srt" -o ! -f "$BASE.en.srt" ] then /usr/local/bin/subliminal -m -l hu -l en "$F" fi done
hiszti és az egyik ezzel kapcsolatos threadben @vszakats tett ki egy non-applet futtató scriptet a Pastebinre. A script a saját könyvtárába létrehoz egy AppletLocal.html file-t, egy jogosultságot definiáló cibib.policy file-t, aztán letölti curl segítségével a CIB-től a cibib.jar appletet, végül elindítja. Az applet letöltése közben a curl néma, így azt érezheted, hogy nem történik semmi, pedig megy az, csak nem látod, szóval egy kis türelem, mire lejön a 2 megás applet. Ha egyszer lent van az applet és kész a HTML és a policy file, akkor elég ez a miniscript az indításhoz:
#!/bin/sh dir="`dirname $0`" appletviewer $dir/AppletLocal.html -J-Djava.security.policy=$dir/cibib.policy > /dev/null &
#!/bin/bash # //fns.pappito.com/2013/02/20/cib-e-bank/ #dir=~/tmp/cibib dir="`dirname $0`" output_dir=~/Desktop [ -f $dir/AppletLocal.html ] || cat > $dir/AppletLocal.html <<eof <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" style="overflow: hidden"> <head> <title> CIB Internet Bank </title> </head> <body style="overflow: hidden;margin: 0px"> <applet name="mainApplet" code="ebank.applet.MainApplet" width="800" height="600" mayscript archive="cibib.jar"> <param name="CABBASE" value="https://cibib.cab"> <param name="default_fontsize" value="11"> <param name="PACKED" value="TRUE"> <param name="java_arguments" value="-Dsun.java2d.noddraw=true -Dsun.java2d.d3d=false"> <param name="separate_jvm" value="true"> <param name="centerimage" value="true"> <param name="boxborder" value="false"> <param name="image" value="loader_hu.gif"> <param name="MAYSCRIPT" value="true"> <param name="BASEVIEW" value="1"> <param name="LOGLEVEL" value="50"> <param name="PROTOCOL" value="https"> <param name="SERVERURL" value="https://ibank.cib.hu/IBWBGateway/IBGatewayServlet"> <param name="PRINTERURL" value="https://ibank.cib.hu/IBWBGateway/IBPrintingServlet"> <param name="LANGUAGE" value="hu"> <param name="INITWIDTH" value="800"> <param name="INITHEIGHT" value="600"> </applet> <!-- <param name="DEMOMODE" value="TRUE"> --> <script> window.onerror = myErrorHandler; function help(pageName) { help_window = window.open(pageName, "help", "toolbar=0,location=0,resizable=0,status=0,menubar=0,scrollbars=0,hotkeys=1,fullscreen=0,width=500,height=380,marginheight=0,marginwidth=0,dependent=1"); help_window.focus(); } function printWindow(text) { msgWindow=window.open("","_blank", "toolbar=1,location=0,resizable=1,status=1,menubar=1,scrollbars=1,fullscreen=0"); msgWindow.document.open("text/html", "replace"); msgWindow.document.write(text); msgWindow.document.close(); } function saveWindow(text) { msgWindow=window.open("","_blank", "toolbar=1,location=0,resizable=1,status=1,menubar=1,scrollbars=1,fullscreen=0"); msgWindow.document.open("text/plain", "replace"); msgWindow.document.write(text); msgWindow.document.close(); } function myErrorHandler(msg, url, linenumber) { alert(msg + ' at line: ' + linenumber); return true; } </script> </body> </html> EOF cat > $dir/cibib.policy <<eof grant { permission java.net.SocketPermission "ibank.cib.hu:443", "connect,resolve"; permission java.awt.AWTPermission "accessClipboard"; permission java.io.FilePermission "$output_dir", "read,write"; permission java.io.FilePermission "$output_dir/-", "read,write"; }; EOF if [ -f $dir/cibib.jar ]; then modified_since="$(/bin/ls -lT $dir/cibib.jar | grep -o '[A-Z][a-z][a-z] [123 ][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9][0-9][0-9][0-9]')" && \ curl -z "$modified_since" -o $dir/cibib.jar.new https://ibank.cib.hu/cibib.jar || exit 1 if [ -f $dir/cibib.jar.new ]; then mv -v $dir/cibib.jar{,.old} || exit 1 mv -v $dir/cibib.jar{.new,} || exit 1 fi else echo "Downloading latest CIB applet..." curl -o $dir/cibib.jar https://ibank.cib.hu/cibib.jar || exit 1 fi appletviewer $dir/AppletLocal.html -J-Djava.security.policy=$dir/cibib.policy -J-Duser.dir=$output_dir > /dev/null &
A probléma Leszedtél egy file-t valahonnan, a browser beletette a file metaadatai közé, hogy honnan kotortad azt elő a neten és most vissza kellene találnod a forráshoz.
on run {input, parameters} set theFile to (input) set aFile to quoted form of POSIX path of theFile set theURL to (do shell script "mdls -name kMDItemWhereFroms -raw " & aFile) if theURL is "(null)" then -- no attribute set theURL to "(URL info not found)" set theMessage to "" else set URLs to {} repeat with i from 1 to the count of paragraphs of theURL set p to paragraph i of the theURL set firstQ to findFirst(p, "\"") set lastQ to lastOffset(p, "\"") if firstQ > 0 and lastQ > 0 and (lastQ - firstQ > 1) then copy characters (firstQ + 1) through (lastQ - 1) of p as string to q set end of URLs to q end if end repeat set selectedURL to false if (count of URLs) = 1 then set selectedURL to (item 1 of URLs) else if (count of URLs) > 1 then set selectedURL to (choose from list URLs with title "Open URL" with prompt "Select URL to open:" without multiple selections allowed) end if if (selectedURL is not false) then tell application "Safari" tell window 1 set current tab to (make new tab with properties {URL:selectedURL as text}) end tell end tell end if end if return input end run on findFirst(str, findString) -- HAS (http://applemods.sourceforge.net/mods/Data/String.php) local str, findString, len, oldTIDs set oldTIDs to AppleScript's text item delimiters try set str to str as string set AppleScript's text item delimiters to findString considering case set len to str's first text item's length end considering set AppleScript's text item delimiters to oldTIDs if len is str's length then return 0 else return len + 1 end if on error eMsg number eNum set AppleScript's text item delimiters to oldTIDs error "Can't findFirst: " & eMsg number eNum end try end findFirst on lastOffset(the_text, char) try set i to 1 set last_occurrence to 0 repeat count of the_text times if item i of the_text as string = char then set last_occurrence to i end if set i to i + 1 end repeat on error return 0 end try return last_occurrence end lastOffset
Józsi ajánló posztját, így azt gondoltam, pont passzolna mellé a dolog, úgyhogy vágjunk bele! Ha a Macintoshodon külső storage-ről szeretnél adatot elérni, az alábbi interfészek állnak rendelkezésre:
erre.
Ahogy töltögettem le Karácsony előtt a sok printelni való STL file-t a Thingiverse-ről, egyre többször jött elő, hogy meg kellene újra néznem valamit az STL file-t tartalmazó oldalon újra. Szerencsére OS X alatt a kMDItemWhereFroms
metadata attribútumba bekerül a letöltés URL-je, amit én néha meg-meg néztem már korábban is egy vérbuta shell scripttel, ami nálam eddig így nézett ki:
#!/bin/sh mdls -name kMDItemWhereFroms -raw "$*"
property getSpecific : false -- show the specific download URL? on run {input, parameters} set theFile to (input) set aFile to quoted form of POSIX path of theFile set theURL to (do shell script "mdls -name kMDItemWhereFroms -raw " & aFile) if theURL is "(null)" then -- no attribute set theURL to "(URL info not found)" set theMessage to "" else if getSpecific then -- get the first item (the download URL) set theURL to paragraph 2 of theURL set here to offset of "\"" in theURL set theURL to text (here + 1) thru -3 of theURL -- the download URL tell application "Finder" set name of theFile to theURL --I have no idea what im doing end tell else -- get the last item (the page/site URL) set theMessage to "page/site " set theURL to paragraph -2 of theURL set here to offset of "\"" in theURL set theURL to text (here + 1) thru -2 of theURL end if tell application "Safari" tell window 1 set current tab to (make new tab with properties {URL:theURL}) end tell end tell end if return input end run
Preface: kiábrándító kompúteres kálvária körülírása következik, kizárólag kockáknak! Az élet úgy hozta, hogy mostantól két SIM kártyát kell használnom egyszerre. Mindig rettegtem attól, hogy két telefont hurcolásszak magammal, de hiába, amíg a roaming aranyárban van, addig nincs más választásom. Azt találtam ki, hogy main telefonnak megmarad a mindenkori iPhone, míg a másik SIM kártya megkapja a létező legolcsóbb && legegyszerűbb független telefont, amit csak be tudok szerezni. Az új készülékkel kapcsolatban az alábbi elvárásaim voltak:
function Unaccent($string) { return preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml|caron);~i', '$1', htmlentities($string, ENT_QUOTES, 'UTF-8')); }
Preface: Bognár Andrist anno én kereszteltem el dr. iPodnak – ez az eredetileg 2008 áprilisában készült post az első találkozásunkról szól. Még tavaly márciusban hoztunk hazafele jövet Szingapúrból egy 80GB-os 5G iPod-ot. A kütyü egy hónapig jól működött, aztán elmúlt belőle a hang – se a dock csatin, se a fejhallgató kimeneten nem szólalt meg. Amúgy minden más része teljesen korrektül ment, csak hát ha én mp3 doboznak akarom az autóban használni, akkor ez ugye édeskevés… Elmentem az iStyle-ba és iJoe-hoz is, hogy mit lehet tenni. Mondták, hogy worldwide garancia van a készülékre, de normális számla kell hozzá. Sajna én Szingapúrban csak egy sajtpapírt kaptam a tranzakcióról, viszont a hitelkártya kivonaton látszani fog a tétel, ami iJoe szerint már elég bizonyíték és menni fog a garanciális csere ezzel is. Elmentem a bankba az igazolásért, majd azzal az iStyle-ba – természetesen nem volt jó. iStyle okosan megvigasztalt: az iPodokat nem javítja az Apple, hanem cseréli – ha nem garanciális a készüléked, akkor az új árának 20%-áért beszámítják és persze a magyarországi Apple jelenlétnek megfelelően 3-4 hónap és hopp, itt is az új készülék… Na itt borult a bili és dühödten eljöttem az üzletből. Telt az idő, az iPod itt állt már jó ideje a szekrényben – egyszercsak PlastikJózsinál olvasok Bognár Andrásról (buundy), aki iPod és Mighty Mouse doki állítólag. Felvettem Andrissal a kapcsolatot. András megnézte és még aznap a következő levelet kaptam:
Megvizsgáltam és utánanéztem, hogy mi okozhatja ezt a jelenséget, hogy nem szól. Azt mondják, hogy ez sok iPod videó betegsége, hogy az alaplapon a “hangkártya” valamiért kontakthibás, és ez okozza a némaságot. Valószínűleg ez a gond, mert amikor megnyomogattam a ClickWheel mellett a fekete előlapot, néha szólt, néha nem, vagy csak recsegett. Megpróbáltam azt, hogy a belsejében egy félbehajtott papírlapot teszek az alaplapra, ami kis nyomást gyakorolna (ez a megoldás általában működni szokott), de nem adott ki hangot így sem. Ez sajna olyan hiba, ami az alaplapon egy chip-ben van, talán rosszul van leforrasztva, hidegben például kicsit jobb az esélye, hogy kiadjon hangot, mert az alkatrész melegben kitágul, hidegben összemegy és ez valamennyire befolyásolja a működését. Betettem pár percre a hűtőbe és annyit sikerült elérni, hogy kiadott pár reccsenést és a szobahőmérséklet miatt újra elnémult. Ha szeretnéd még használni az iPododat (naná! ), akkor új alaplapot kell bele venni. Általában küldöldről szoktam ezeket hozatni, így kell vári általában egy-másfél hetet, mire ideér. A javítás mindenestül 25ezer forintba kerülne. Vagy megpróbálhatod eladni valahol alkatrésznek, hátha abból valamennyit visszanyersz és akkor olcsóbb megvenni egy új iPodot. Nem szeretnélek befolyásolni de szerintem ez az iPod annyira új és karcmentes, hogy inkább javíttatsd meg. De te döntsd el, hogy mi legyen.Teljesen korrekt, kimerítő válasz. Mivel a javítással is még bőven alatta vagyok a magyar árnak, kértem tőle, hogy szereljük meg – megcsinálta. Tökéletes – a szétszerelésnek nyoma nincs, az iPod teljesen karcmentes és András a végén 25kHUF helyett 23kHUF-ot kért mindezért: Találkoztam vele, hogy átvegyem az iPod-ot. Mondom neki, hogy mindjárt veszek ki akkor 25kHUF, ahogy megegyeztünk előzetesen. Erre Anrdás: elég lesz 23kHUF, mert sikerült kicsit olcsóbban alaplapot szereznem. Azt hittem, rosszul hallok – ilyet, Magyarországon báz?! Szóval bárkinek hibás *.Apple cucca van, elsőnek ő jusson az eszetekbe – terjeszteni fogom a nevét, amerre járok!]]>