Darkside  

Voltar   Darkside > Darkside > Comunidade
FAQ Calendário Postagens do dia Buscapé Search

Responder
 
Thread Tools
ZeroCarontE
Trooper
 

Thumbs up [Firefox extension] [HOWTO] Ketjap

24-06-06, 05:26 #1
Eu já disse no tópico do Opera 9 que o que eu gosto no firefox é aquela extension do CustomizeGoogle, que cria um link direto para as imagens, sem passar pela página intermediária que possui frames.

Só que eu também uso o image search do yahoo, ae eu me irritei com essa maldita página intermediária.. Então dei uma procurada por uma extension que fizesse isso e achei algo ainda melhor

O que ela faz?
Altera elementos das tags no HTML. Por exemplo, o elemento HREF da tag A. Você define um padrão que você quer alterar, e define como deve ser alterado (através de javascript)

Mas eu não sei javascript
Ele tem um menuzinho que consulta, aparentemente, online por filtros prontos. O do yahoo images não funcionou, mas eu fiz um (alterei na verdade) e vou mostrar aqui como ele fuciona. Não testei o do google images pq o CustomizeGoogle além de criar link direto, cria linkzinho embaixo com mais firula

Mas eu sei! Tell me now!
Vou usar como exemplo o filtro pra link direto para imagens, no yahoo images:
Code:
tag: a
attribute: href
prevalue: /^(http:\/\/rds.yahoo.(.*))\/(.*)imgurl=.*$/i
postvalue:
[
"http://";
  +
  unescape(unescape(
	[PREVALUE].substring(
	  [PREVALUE].indexOf('imgurl=')+7, 
	  [PREVALUE].indexOf('%26rurl=')
	)
  ))
]
Como funciona? O prevalue é a expressão regular que ele procura nos hrefs. Se ele achar, ele vai alterar, senão ignora. É possível usar só wildcards se você não sabe usar regexp e se recusa a aprender essa maravilha do pattern matching

/^(http:\/\/rds.yahoo.(.*))\/(.*)imgurl=.*$/i
O modelo da expressão regular segue o modelo que o javascript usa (que é o mesmo do perl se eu não me engano). Ou seja, /expressão/opções
No caso a opção é i (case insensitive)
E a expressão é ^(http:\/\/rds.yahoo.(.*))\/(.*)imgurl=.*$
Em wildcard isso seria http://rds.yahoo.*/*imgurl=*

Ou seja, se tiver um link, em qualquer site, em qualquer página, apontando pra uma URL que siga esse padrão (através de links), então o postvalue vai ser aplicado.

Agora o postvalue. Ele tem que ficar entre [] senão não funciona (acho que é um "evaluate")
O que nós queremos é pegar apenas a URL que está no imgurl=, para ter o link direto:
Code:
[
1 "http://"
2   +
3   unescape(unescape(
4	 [PREVALUE].substring(
5	   [PREVALUE].indexOf('imgurl=')+7, 
6	   [PREVALUE].indexOf('%26rurl=')
7	 )
8   ))
]
Eu enumerei aqui só pra ficar mais fácil explicar.

A linha 1 diz que o link novo (o novo conteúdo do href) vai começar com http:// (para ter uma URL absoluta), e a linha 2 é concatenação de strings em javascript (só pra juntar textos).

A linha 3 é necessária porque o yahoo redireciona pra uma outra página interna deles, ae pra passar os caracteres como / $ % & e tals, ele precisa codificar em hexa.. %20 é o espaço, por exemplo. Acontece que essa "outra página" tem que ter, como parâmetro o link direto, ae ele tem que codificar 2 vezes.

Se você não entendeu merda nenhuma, veja o exemplo:
imgurl=jenkneulman.homestead.com%252Ffiles%252Fholy_shit.jpg
Ao se passar o unescape uma vez (%25 é o caracter %):
imgurl=jenkneulman.homestead.com%2Ffiles%2Fholy_shit.jpg
ao passar mais uma vez:
imgurl=jenkneulman.homestead.com/files/holy_shit.jpg


Na linha 4, tem um negócio ali que é o [PREVALUE]. Isso representa o valor original do elemento que estamos modificando (no caso um A:HREF, ou seja, o link original).

substring é uma função do javascript que serve para pegar um pedaço de texto, por exemplo, se eu tenho o texto "You don't know the power of Dark Side" e quero pegar o "know the power", eu faço
Code:
"You don't know the power of Dark Side".substring(10, 24)
10 porque o know está na posição 10 (começa a contar do 0), e 24 porque é um caracter depois do power. Dá pra testar isso fazendo um javascript:alert("You don't know the power of Dark Side".substring(10, 24)); na barra de endereço do firefox

Então a intenção do substring nessa linha é justamente pegar o link que está entre "imgurl=" e "%26rurl" (que é o que vem depois do imgurl)

Na linha 5, ele usa o indexOf, que informa qual a posição da frase 'imgurl=" dentro do texto [PREVALUE], e adiciona 7 (pra ele pegar o que vem DEPOIS do "imgurl=") (imgurl= tem 7 caracteres)

Na linha 6, ele faz mesma coisa que a 5, só muda os valores e a intenção


Nas linhas restantes ele fecha todos os ( e [ que foram abertos

TANAM agora quando você clicar num thumbnail no image search do yahoo você será levado diretamente para a imagem


WTF FAKE NAO FUNCIONA
Funciona sim, mas quando você passa o mouse ele mostra o link original.. ás vezes ele mostra o novo.. Mas quando você clica ele sempre leva pro link novo. Quando você clica na imagem com botão direito e Copiar link ele também sempre copia o link novo, o problema é só a statusbar.

Mas eu quero ver rapidinho aquela página com frame denovo
A extension cria um iconezinho na statusbar, vai lá e ativa o Disabled.

Quem fizer algum outro filtro 0wnz0r posta ae tb






Last edited by ZeroCarontE; 24-06-06 at 05:32..
ZeroCarontE is offline   Reply With Quote
Oni
Trooper
 

24-06-06, 05:46 #2
Parece o mesmo esquema do greasemonkey, não é?

Oni is offline   Reply With Quote
ZeroCarontE
Trooper
 

24-06-06, 05:54 #3
nao sei
o grease monkey pela descricao q eu lembro acho que podia fazer isso
mais poderoso, porem mais complexo (pq tem q fazer um script intero)
esse ae eh soh seek'n'change

ZeroCarontE is offline   Reply With Quote
AcquiencE
Trooper
 

24-06-06, 08:52 #4
nossa é complicado ein
juro q li umas 3 vezes mas ainda sim acho dificil isso hehe

AcquiencE is offline   Reply With Quote
diferent
Trooper
 

24-06-06, 09:22 #5
Basicamente vcs tao ajudando a fechar o google e o yahoo. Nao é isso?

diferent is offline   Reply With Quote
relax'
Banned
 

24-06-06, 09:22 #6
putz, e eu que nem li? complicado mesmo

relax' is offline   Reply With Quote
s p o o l
Banned
 

24-06-06, 10:05 #7
Quote:
Postado por diferent
Basicamente vcs tao ajudando a fechar o google e o yahoo. Nao é isso?

s p o o l is offline   Reply With Quote
shogun
Trooper
 

24-06-06, 10:27 #8
prefiro o greasemonkey

shogun is offline   Reply With Quote
Lev
Trooper
 

24-06-06, 10:52 #9
Quote:
Postado por relax
putz, e eu que nem li? complicado mesmo
IDEM

Lev is offline   Reply With Quote
Oni
Trooper
 

24-06-06, 14:32 #10
pra mim, parece simples.

Oni is offline   Reply With Quote
Eluan
Trooper
 

Steam ID: eluancm
24-06-06, 15:38 #11
Way too simple

Eluan is offline   Reply With Quote
Responder


Regras de postagem
Você não pode criar novos tópicos
Você não pode postar
Você não pode enviar anexos
Você não pode editar seus posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Atalho para Fóruns



O formato de hora é GMT -3. horário: 15:26.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.