Skip to content

Instantly share code, notes, and snippets.

View zhangyuan's full-sized avatar

Yuan Zhang zhangyuan

  • Xi'an, China
  • 13:59 (UTC +08:00)
View GitHub Profile
@zhangyuan
zhangyuan / search.java
Last active August 29, 2015 14:07
Create index and search with ElasticSearch
import org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder;
import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequestBuilder;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexResponse;
import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsResponse;
import org.elasticsearch.action.bulk.BulkRequestBuilder;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
@zhangyuan
zhangyuan / get_csrf_token.py
Created October 14, 2014 14:06
Get csrf token from rails application web page
from bs4 import BeautifulSoup
import requests
def get_csrf_token(url):
response = requests.get(url)
soup = BeautifulSoup(response.text)
csrf_param = soup.find("meta", {"name" : "csrf-param"})['content']
csrf_token = soup.find("meta", {"name" : "csrf-token"})['content']
return csrf_param, csrf_token
@zhangyuan
zhangyuan / search.java
Last active August 29, 2015 14:06
ES Search Example
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.ImmutableSettings;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.index.query.MultiMatchQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
@zhangyuan
zhangyuan / getImageFileFromBase64URL.rb
Created September 14, 2014 04:24
Get image file from base64 encoded URL
require 'tempfile'
def getImageFile(dataURL)
file = Tempfile.new(['image', '.png'])
file.binmode
file.write Base64.decode64(data)
file
end
@zhangyuan
zhangyuan / getBase64Image.js
Created September 14, 2014 04:21
encode image with base64 algorithm from image src
function getBase64Image(img) {
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
var dataURL = canvas.toDataURL("image/png");
return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
@zhangyuan
zhangyuan / wechat.rb
Created July 19, 2014 02:18
Wechat Signature Validator
module Wechat
class SignatureValidator
attr_accessor :token, :params
def initialize(token, params)
@token = token
@params = params
end
def calculate
@zhangyuan
zhangyuan / Watir_sign_in.rb
Last active August 29, 2015 14:03
Sign in website using Watir
# encoding: utf-8
require "watir"
email, password = ARGV[0], ARGV[1]
puts "email: #{email}"
puts "password: #{password}"
browser = Watir::Browser.new
browser.goto("http://zhe800.com")
@zhangyuan
zhangyuan / proxy_ip.rb
Created July 6, 2014 13:35
Crawl HTTP Proxy IPs
#!/usr/bin/env ruby
require "mechanize"
require 'logger'
logger = Logger.new(STDOUT)
TEST_URL = "http://baidu.com"
Entry = Struct.new(:host, :port) do
attr_accessor :alive
@zhangyuan
zhangyuan / nginx.conf
Created July 6, 2014 13:12
nginx configuration of echo-ing remote addr
server {
listen 7977;
server_name example.com;
set_real_ip_from 127.0.0.1;
real_ip_header X-Real-IP;
location /ip {
default_type text/plain;
echo "$remote_addr";
@zhangyuan
zhangyuan / sendDeleteRequest.ps1
Created July 3, 2014 15:56
Send Delete Request with PowerShell 2.x
Function SendDeleteRequest($url) {
try {
$request = [Sytem.Net.WebRequest]::Create("$url")
$request.Method = "DELETE"
$request.GetResponse()
}
catch
{
Write-Host "Fail to send DELETE request to $url"
}