Monday, July 4, 2011

WTF does that mean?

Недавно згадав ше одну свою геніальну програмулю. Такий собі онлайновий словник. User story такий: мені не підходив жоден оффлайновий англійський словник, бо одні тре було крякати, інші були атстойні, тому я постійно користувався Лонгменом-онлайн. Але для того, шоб відкрити там тлумачення того чи іншого слова, тре було відкрити нову вкладку, потім зайти на Лонгмен, потім набрати то слово... Я вирішив то автоматизувати і наваяв програмулю, знову ж таки на С і під лінукс з використанням gtk-clipboard. Програмуля вийшла на диво мініатюрна. Код:

/* файл назвем для прикладу main.c */

#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <string.h>

#define MAX_BUFFER 300

int main (int argc, char **argv) {
char command[MAX_BUFFER];

/* initialize GTK */
gtk_init (&argc, &argv);

memset(command, 0, MAX_BUFFER);

/* compose text of the command */
sprintf(command, "firefox http://www.ldoceonline.com/search/?q=%s", gtk_clipboard_wait_for_text (gtk_clipboard_get(GDK_SELECTION_CLIPBOARD)));

/* run command */
system(command);

return 0;
}

компілюється то всьо таким рядком:

cc `pkg-config --cflags --libs gtk+-2.0` main.c -o longman

На виході маємо бінарник longman, який тре покласти в /usr/local/bin

В чому суть?
Коли я бачу десь англійське слово, яке не розумію, я його копіюю, себто кладу в буфер і тисну win+t. Запускаєтсья моя програмуля, дістає з буфера то слово, і відкриває у firefox таб з лінком на longman з запитом на пояснення невідомого слова.

Лонгмен і firefox можна замінити на то, шо вам більше подобається )

That's all.

No comments: