linux

How to Compile BusyBox for Android

ทีแรกว่าจะจดเป็น short note เฉยๆ พิมพ์ไปพิมพ์มาชักยาว ประกอบกับไม่ค่อยได้อัพบล็อก เลยคิดได้ว่า อย่ากระนั้นเลย... เอามาเขียนเป็นบล็อกจะดีกว่า =.=

BusyBox คือโปรแกรมสารพัดประโยชน์สำหรับระบบปฏิบัติการตระกูลลินุกซ์ ถ้าอ่านคำอธิบายจากเว็บไซต์ของมันจะได้ความประมาณว่า

BusyBox is a comprehensive set of programs needed to run a Linux system.

โดยปกติตัว BusyBox จะเป็นไฟล์ executable เพียงไฟล์เดียว แต่เราสามารถเรียกใช้งานคำสั่งต่างๆ ที่มีให้ใช้บนลินุกซ์ผ่านทางไฟล์นี้ได้ ยกตัวอย่างเช่น

busybox ls /system/app
busybox wget http://www.example.com/file.zip

รายการคำสั่งที่มีให้เรียกใช้ใน BusyBox ดูได้จาก BusyBox Commands

สำหรับผู้ใช้ Android ที่ใช้โปรแกรมประเภทที่ต้องการสิทธิ์ root จะพบว่าส่วนใหญ่โปรแกรมพวกนี้จะมี requirement ว่าต้องมี BusyBox ติดตั้งอยู่ด้วย หรือบางโปรแกรมไม่ต้องการสิทธิ์ root แต่ก็ยังต้องการ BusyBox ซึ่งจริงๆ ก็สามารถติดตั้งได้ง่ายๆ โดยโหลดแอพพลิเคชันจาก Market เช่น BusyBox หรือ BusyBox Installer แต่ไหนๆ ก็บ้าพลังคอมไพล์ AOSP ใช้เองแล้ว เลยคิดว่าคอมไพล์ BusyBox ด้วยอีกอย่างจะเป็นไรไป :P

Read the rest of this entry »

Our Manga Downloader on GitHub

ฉลองครบรอบการดองบล็อกเป็นเวลา 1 เดือน(กว่าๆ) ด้วยสคริปต์ใหม่ =.=

หลังจาก One Manga ปิดตัวไปเมื่อประมาณเดือนสิงหา ผมก็พยายามเปลี่ยนพฤติกรรมการอ่าน manga มาเป็นอ่านบนเว็บแทน ที่ติดตามหลักๆ ก็จะเป็น mangastream.com และ ourmanga.com แต่ทำอยู่ได้ไม่นานก็ทนไม่ไหว เนื่องจากขี้เกียจคลิกเข้าไปดูทุกวันว่ามันมี manga อะไรอัพเดตบ้าง สุดท้ายเลยได้ Our Manga Downloader มาด้วยประการฉะนี้ :P

สคริปต์ตัวนี้เขียนแบบขี้เกียจ + ขี้โกงสุดๆ เพราะถ้าเป็นสคริปต์ตัวเดิม (onemanga) จะต้องอ่านหน้าเว็บเพจ แล้วค่อย extract ข้อมูลออกมาตามเสต็ป คล้ายๆ การคลิกเข้าไปในเว็บจริงๆ แต่ตัวใหม่ (ourmanga) นี้ใช้ทางลัด อาศัยว่าทางเว็บเค้าเปิดฟีเจอร์แสดงรายชื่อไฟล์ในไดเร็กทอรีเอาไว้ เลยไม่ต้อง parse หน้าเว็บหาลิงก์ให้ยุ่งยาก ใส่ URL ไปตูมเดียวก็ได้หน้าเว็บที่มีแต่ลิงก์ไปยังรูปล้วนๆ xD

ฟีเจอร์ของสคริปต์ลอกมาจาก onemanga ทั้งดุ้น ใครเคยใช้ของเก่าอยู่แล้วก็ไม่น่ามีปัญหา ส่วนวิธีติดตั้งและใช้งานก็เหมือนเดิมเด๊ะ เข้าไปดูใน One Manga Downloader Wiki page ได้เลยครับ (อย่าลืมเปลี่ยน git clone URL เป็นของ ourmanga แทน)

ปล. จริงๆ ไม่ค่อยอยากปล่อยเท่าไร กลัวทางเว็บไหวตัวทัน ปิดฟีเจอร์แสดงรายชื่อไฟล์แล้วต้องมานั่งเขียนสคริปต์ใหม่ T_T แต่จะเก็บไว้ใช้คนเดียวก็กระไรอยู่ ถ้าสคริปต์นี้พอจะมีประโยชน์กับชาวโลกบ้าง ก็ถือว่าคุ้ม :D

One Manga Downloader Now Supports Series Hosted on 1000manga.com

As you may have noticed recently, onemanga.com has removed some of their series from the site e.g. Vagabond and Zetman due to license issue. They did it by removing all links from the manga page.

However, today I just found that instead of just removing the links from the manga page, they now provides a link to their sister site (say 1000manga.com) which is still hosting the manga I mentioned above.

Luckily, the code on 1000manga.com is almost the same as onemanga.com so I tweaked the script to automatically download the file from 1000manga.com if it has to do so.

So here's the updated One Manga Downloader. Enjoy reading your favorite mangas!

P.S. Many thanks to the One Manga team for providing and maintaining all those high quality scans :)

Taking Screenshots of Websites Without Opening Browsers

พอดีได้รับมอบหมายงานจากหัวหน้า ว่าทำยังไงก็ได้ ให้มีรูปพยากรณ์อากาศจากเว็บกรมอุตุฯ มาโชว์บนจอ LCD โดยอัพเดตทุกๆ ชั่วโมง การเอามาโชว์นั้นไม่ยาก เพราะแค่อัพโหลดไฟล์ตามขนาดที่กำหนดเข้าเซิร์ฟเวอร์ หลังจากนั้นโปรแกรมมันจะจัดการให้เอง

รูปที่ต้องการนั้น 2 ใน 3 สามารถโหลดมาใช้งานได้เลย เพราะเป็นไฟล์ .jpg ธรรมดา ปัญหาคือรูปอุณหภูมิสูงสุด-ต่ำสุดประจำวัน ที่มันดันเป็น Flash ทางออกที่คิดว่าง่ายที่สุดคือ capture หน้าจอมันมาดื้อๆ นี่แหละ

คำถามคือทำยังไงให้มัน capture หน้าจอให้อัตโนมัติทุกๆ ชั่วโมง ทีแรกว่าจะใช้ AutoIt เปิดบราวเซอร์แล้วสั่ง printscreen แต่คิดว่าดูแล้วไม่ค่อยโปรเท่าไร ลอง google ไป google มา ก็พบว่าอันที่จริงมันมีเครื่องมือแสนสะดวกให้ใช้อยู่แล้ว

Read the rest of this entry »

One Manga Downloader (Shell Script) v1.0

Updated

อยากอ่านการ์ตูนย้อนหลังใน One Manga แต่ขี้เกียจคลิกทีละหน้า เลยเขียน shell scipt บน Cygwin ให้โหลดมาทีละ chapter แล้วเซฟเป็นไฟล์ .cbr จะได้เลือกอ่านได้ง่ายๆ

สคริปต์ที่ใช้ก็ประมาณนี้

#!/bin/bash
 
base_url="http://www.onemanga.com"
manga_name=$1
chapter=$2
last_chapter=$3
 
if [[ "${last_chapter}" == "" ]]; then
    last_chapter=${chapter}
fi
 
while [[ ${chapter} -le ${last_chapter} ]]
do
    next_page_chapter=$chapter
    page_location=`curl -s ${base_url}/${manga_name}/${chapter}/ | grep -i "begin reading" | awk -F\" '{print $2}'`
 
    while [[ $next_page_chapter -eq $chapter ]]
    do
        curl -s ${base_url}${page_location} > tmp_page
 
        image_location=`grep "class=\"manga-page\"" < tmp_page | awk -F\" '{print $4}'`
 
        if [[ "$image_location" != "" ]]; then
            wget $image_location
        fi
 
        page_location=`grep "value=\"next page\"" < tmp_page | awk -F\' '{print $2}'`
        next_page_chapter=`echo ${page_location} | cut -d\/ -f3`
    done
 
    /cygdrive/c/Program\ Files/WinRAR/Rar.exe a ${manga_name}_${chapter}.cbr *.jpg
    rm *.jpg
 
    chapter=$((chapter+1))
done
 
rm tmp_page

สร้าง directory ใหม่ซักอันนึง แล้วเซฟ shell script ข้างบนเป็นไฟล์ชื่ออะไรก็ได้ เช่น onemanga.sh แล้วสั่ง chmod +x onemanga.sh เพื่อให้สามารถ execute ได้

วิธีใช้ก็เรียกสคริปต์ ตามด้วยชื่อเรื่อง (หาจาก URL ใน One Manga), chapter เริ่มต้น และ chapter สุดท้าย เช่น

./onemanga.sh Hajime_no_Ippo 800 824

หรือถ้าต้องการแค่ chapter เดียว ก็ไม่ต้องใส่ chapter สุดท้าย

./onemanga.sh One_Piece 516

ปล. ถ้ารันบน Cygwin ต้องลง cURL กับ wget ด้วย (เลือกจากใน setup.exe) ถ้ารันบนลินุกซ์ หรือไม่ได้ใช้ WinRAR ก็ต้องแก้บรรทัดที่เรียก Rar.exe เป็นอย่างอื่นแทน :P