1 FTS Encurtar url (galerarox) Dom Jun 02, 2013 10:40 pm
Moedas : 201
Mensagens : 92
Humor : *-*
Reputação : 5
Mensagens : 92
Humor : *-*
Reputação : 5
hacker fts315
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
- Código:
/**
autor: hacker fts315
compilar: gcc fts.c -o hack -l curl `pkg-config --cflags --libs "gtk+-2.0"`
**/
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include <gtk/gtk.h>
#include <curl/curl.h>
//variaveis globais
GtkWidget *janela, *fixo, *entry1, *botao1, *titulo;
CURL *c;
//prototipo
void fts_fim(void);
void fts_botao_encurtar(void);
void fts_write(void *ponteiro, size_t tam, size_t tam2, void *stream);
//funçao principal
int main(int argc, char **argv)
{
//incicializar serviço
gtk_init(&argc,&argv);
c = curl_easy_init();
//instanciar
janela = gtk_window_new(GTK_WINDOW_TOPLEVEL);
fixo = gtk_fixed_new();
entry1 = gtk_entry_new();
botao1 = gtk_button_new_with_label("encurtar");
titulo = gtk_label_new(NULL);
//atributos
gtk_window_set_title(GTK_WINDOW(janela),"by hacker fts315");
gtk_window_set_position(GTK_WINDOW(janela),GTK_WIN_POS_CENTER);
gtk_widget_set_usize(GTK_WIDGET(janela),270,80);
gtk_window_set_resizable(GTK_WINDOW(janela),false);
gtk_label_set_markup(GTK_LABEL(titulo),"<span foreground=\"red\">FTS Encurtador de url</span>");
gtk_widget_set_usize(GTK_WIDGET(entry1),200,20);
//empacotar
gtk_container_add(GTK_CONTAINER(janela),fixo);
gtk_fixed_put(GTK_FIXED(fixo),titulo,50,10);
gtk_fixed_put(GTK_FIXED(fixo),entry1,0,30);
gtk_fixed_put(GTK_FIXED(fixo),botao1,200,30);
//invocar
gtk_widget_show_all(janela);
//eventos
g_signal_connect(GTK_OBJECT(janela),"destroy",G_CALLBACK(fts_fim),NULL);
g_signal_connect(GTK_OBJECT(botao1),"clicked",G_CALLBACK(fts_botao_encurtar),NULL);
//finalizar
gtk_main();
return 0;
}
//funçao finalizaçao
void fts_fim(void)
{
curl_easy_cleanup(c);
gtk_main_quit();
}
//fuçao para o botao encurtar
void fts_botao_encurtar(void)
{
int erro;
char url[1000] = "http://widgets.galerarox.net/gera-url.php?url=";
strcat(url,gtk_entry_get_text(GTK_ENTRY(entry1)));
curl_easy_setopt(c,CURLOPT_URL,url);
curl_easy_setopt(c,CURLOPT_WRITEFUNCTION,fts_write);
curl_easy_perform(c);
}
void fts_write(void *ponteiro, size_t tam, size_t tam2, void *stream)
{
char url2[1000];
int tam3;
strcpy(url2,ponteiro);
tam3 = strlen(url2) -2;
url2[tam3]= '\0';
gtk_entry_set_text(GTK_ENTRY(entry1),url2);
}