From 928798ed28d02e422d44e42b3dc9bf0dbb0f6eba Mon Sep 17 00:00:00 2001 From: Kevin Lynx Date: Mon, 22 Jul 2013 21:23:44 +0800 Subject: [PATCH] complete all http uri to json api --- ebin/api.beam | Bin 4364 -> 6424 bytes ebin/crawler_http.beam | Bin 4824 -> 4468 bytes ebin/dhtcrawler.app | 14 +++++++------- ebin/http_common.beam | Bin 0 -> 1652 bytes ebin/http_handler.beam | Bin 8996 -> 8860 bytes 5 files changed, 7 insertions(+), 7 deletions(-) create mode 100644 ebin/http_common.beam diff --git a/ebin/api.beam b/ebin/api.beam index 916006e3459a815a11e179b970acdbe18030611d..6dc992fe07f5106c4b73a0e1ee1be977acb894d2 100644 GIT binary patch literal 6424 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 literal 4364 zcmZu!2|QG58=sjo%o$9M8Ozv*Nn{<%wU&m7ku6IJbz_XdFlOAD5fxH&(@N2D;*%sr z@uf&1QJ*C(l(gIw?e10DsGHn-zxRl~zWclL^FQzNKF|OCKkxIr=gb`5OG9jNI5ncD zmq&nyT#}5#;Zt!q924TD2o+@lo|K=U!k6;WL;`74f?S?LjTgwHzWSq*1Z&eI(pXZm zBsNMQ6Ov*DBHUTNu5ECpc)W7;?lSl=!RFPaEjwg}{)Mi2wu^{TJUr{C$$BP6C$$%qNnF+@U zMFJU7E=?6EiUi_#c>+n68iS?5TM?5bQh_Si;P+JJ?!U_Jl^kDv&FYRtkjR1g*$BC?qf${-;)haVs|7Y8l$!n05o5fR|o2pjQ&2uv?7 z!lbc@5Xy!b2!anng9ub9f{#`~5U?DLCLs)$RLC_IVt7J0nkR%XT{bgaH#1qDOa$^| zGVIZmOa(Rz5{^JfG#e;FUiJ{=MTD4a8puv#a~TktLSnGN1qot9SS}Djvx&%2gn?}V zP*@OJfKdv*QP47&5slze&}bhBpN*dKVd4wWHUd=%?6J(b0Rr3efIxXlYBaQu$Qbya za32w&m}1IA2ttQpBnZKua@Y&e@NMW@u%61m_qlXHt{qSiD2NFPviF1-98ZW9>It#= ztPZ9dvqOumM0>8JK7k*0>EO6_a2QBXiYEsr^W-2o-i$)7jGNSrjVGjYgq@YBebuN@^5MJglLJP_*%|<{V64BSQg6foNtFE!tuBVH$Qn zz?vjRHn?IDBFL+mslX_p9i|~c3~vULtE9uFc`*qzwXaN2pOyj;MDQ>jg|)y2bb+bu zOrg&nAPUpLdFlS|_@?J`XU`ATo<2ZW2ZeROYCW)8*M*`3xdME4McbJgi5-v9TEBMZ;Q@4dQy!alNl`eH7LQ>iR(4fC5s3LcNHXQUPEZ zOfwC>-I>_U3mbw*=(a z2Vj?KV92Wic|+V<)7GMQakkHfp*iE zy)LRtZ+O?g`)%#(I`h4syziPP#+yo>iEPcK{U&ZUuJlV9<3(;StRo(+>y^EhYUhg< z#eBgND`Jg3CT{g7jWzQ>SLS#JpYaGEcoJ6yRp;4PJu!3`PK+LtroSYGzO5(8l38aW zocWLIb%R3AT9*~E6mJ=x9Pcl2<@Nvc>7rybqx8h;5NyMM4= zW4&Wy4FNC(z|ID<=X%KHQZSn3h%iqAAr=R%k%^}#Vg#3UcGdnU7q{-d9Zqkyf4E|q zn8;Zojswh^X+9C-lO!o}p+qdh)^*GSX53BxX~KY zOO8e)hd%H|_U%kwty9LM!_EO7w0v#oa6n!m&(pS}BS7Ud^1i0G7(7jeF`B zKv&1F_IFZ7dPlR$6Xy%%RoCTQv1$E+{nwbv zbphelsd{#VUo+;SzXf<$-u+L$Jl-Y&X=`l^u(YCYICnQZC}VUE_i!@z%ZK1q9e8qk z2O%^vdq~wG?~al_p;dDaw`;4RpSym#(auJ7pAky=LRD9G3n!ELBqThdsr;}S({^%v zbmz-rTZ3n|WQ$!&k5|Qt0?+T`Xg+Q0TIp91bM=DpqK^%C8(k+dd+(~s)1Eo&hQ<01 z-S5k}IiNxDEZ}s0d_v#lZa6P^WJvUC^e}yZ(;ea#=6}J?V4riFN!g=uYDW2H6H)t% z=KZ$YuMXa}8{ur#b~v^8@Dlw|oo&)b(%@dZsp#`_cw^8Z3%c`_`6f-qd+Ln)BRmHhb*eNj z-|RaayFB;2Qe9>lFI%BwdqFNfMy_Gs)N=)Tc>X6zn$Iz=!dhWSXIOB7Sqm5Z#k^cd z@awE{k_K3sm!x~-DfDaUKWS1wY0OiBK1c9RB)$D|Q%9PcM1QQqC2aHRQi{nskkB;R z_7msFD$yI;kkbn;*I9c--2Gt0+LvEneP=RqB5Y~#2>YUP`RY;cxg(@BPWo7SaDO|~ z#tOgES9(W!NptnjJw59$+uBy9?rhM$->9ske$TU^o9=EV6=vBqFu&bwZTprKqaaI^sZ_0u$<8HO?3Buo$gA(RB7*0(QzD7|MAwpu@{3)1-Q4a%m8_@z zi_gKOd0Op-WUcnzvneGKMyIiZu4M^@F?sua@D}loP`dv)EhqFwWz}=*khWsm=(vo+ z__#uvYNRSHqtq|>-Ltyo2FeeXzoMF!Ip(-I9!hh4%TUZ7mV9g&yzv(d?fSCSgQXK+ zdtCXt!o*n@Vbo-r|6J9@U3;r#s!fq&O{>PLA{IVbeSTwU;3cp3zONSu!VB#)EX|}B zmohasa<+L*^^6zdwQpYsYTgy~jsC#vUFn#UaPp;tdOkR?R(ck84tzwS3t+9G<#YHU5U-^#^irS!l`;eqgS z@AF6dnm6YZt*daXQqpc;LvV;gR3=-==S9E-?sSS8)4Q`u=-snteT9 zmHYc;eK^#5Wp9&dM84|#`Kv0{*LA568hjwGmv!du9@ctyZmqTVlpa@)lX0VVq1(qB zrW>_HL(0D|G>yvL{XqfcG=1?;Gt9E_-anPRZjp&j*!zq6((+Gh)lV&xc5bOnr;ME- z-Otk7E`50+){S3i^Vn#dyDag1Q_*YJv3;&Xt5>X?v$(%~#BR^F`a63)k9T?e(jpoi z`Mvhc>uV{z;m_(F2Oe}7#a!RIU|@M^I4pd3dvi~^$;}DhlaP4w2m77gB~a_Tw%eMI zYr@4e@i4<0u44`5sk86@wFUIl*YTa(=?9Mmc)op5=O|}U$z2<*wmuZMwX~pXU>j>@YJ95v4Yzt61 za>dGFIsN*zFOvq$p3H~WTK`>~`TE#{@okPf;B4NA+q&pKD0`ay#t&Xybik1xdoumt z*?X18>{c9$87l4J+?s!=RO4(UJz;xJVwI@D?tW8O-lZ^$;+n9il@~go>vKyZRl@wx z;M@kH-H|$hMe64{zuD!^>;5z2_dv@xY42ZhGJa@8BXvs_KYVd|#CYE?2aY<%SJZ?& zyio!6qcreZRQ(_`+354VpR^W?Zicp;F&mB^>JHI)a4G(zedYSf44&)L-6etzrS669 zYdY8W+Fp~1M+W`>jNfD;b86KHS>yOV(79_Z`_eP}pbYoWfBQXp@E5`RxPvp!UnmCu z3*(XiW90xvu+z?r z2LJ%kAZiaGH9-ue0l*ZG^#cItZHCOt;Lykn6dCZ4IGKteu%-u0$xJ~26F<8W0AZ6g z=7*922i~_3HaYS?A}@qZ-WV$IZ(ViP>dL$%mBjRzdjSgM=&@XA?DHl ztSDjlTnv;BH3stk@d47tkxb$RM)Jw%BKzAx4&7RuiR}@AS|^ik_K0PF`O6(NR!-)1XxFNeBaN!u%oOeSu0rqt;AmK9Cs zCaz?c@7k>t-WCsceV<@j~+B9YixJj9ahwaSESB` zhUaZ^uudZtjwr;QM^AYcPglnK**j@G8}uJvg~af5RAod4PH#6WxoBiJ zI=hZM;YYJZCA_K3b0ePf3yTanq0Mc%l`-%vBm2YX%f{bJR0rZ3E;ZxBjeE76n1hYw zYS8oM35RMazTmzcx2gL!=;pv~wsfmSa$)ZqzGre4kz5XX)&;L&Bsr;_~`V zR5X^fRwFSbvie!`nQH?F0NCNrA68J3!C`$=7(kdA9gM^bB6x}E(tlBZTSm`ThnsLY zi+>@V1l5V-@qvs4W`8Cuz={tE$KitshXTu?a0DL_j>Uxq0L*^AxL_>6j`j16xaflm zzJUL~3C{%#F3<-b>=T6v3&sUsJX{UI1putL;PZhISiejE>>ueDMqnHe0I=w4=xZPk zHPR5s!zzs7#K>cqNwc6S5kUD8!U2FaApR5ph@Xls%60#ZAJY?bxTqbJL^xxWAdKR< zZY(?HG>G;~U_!i+WS*MM@R^N@NvsX|mUs16?+8xSf zMJ4I^Nv`>`9>MHpQ)P7w&VI}4=eYmbQVDqS$uv11BG zFagx5x7^a{(ip9PsDvT!YhEQUqyD=BP>MouNl zQ=b~|FR(##&N+$NF%3L3rrhy$sw!whyu=RhJ7~ejPG^5`-Q3k6?2h)ephp<@~Cd3HL=Ibz6pF*XVrMkaa%>SzyeD(SUbxp`G~x1lhIAWRpPAr@%o0?WWxAwwR^x7`Pp)D{V@bgBta$(pGj)KoW@v-Qw8 z!u#%erSapoP+F?L&0r0U?fKGJ+3(`+=tb<5eneDvSWv=IHzV-Hna4z&Xm1vDscULe zjc6DlKN8>SI^VnR8DgkpfmF(Os&s8eng;lkk)$3Jb?g7esvTH{*&fY1D3>*U#wW9P zUVpIfNV3UCH9d)+$qgt4Sf*#*!okH`Rew42;Y4Nc-7~yjg9AWG>_vIhGlzWu&8J)JH71HzY_^)iRRNyHwyp#T1~fG})6CX2fQE zWc%c3J~=e={+PP=Th~(OX#UKeW85cF%Q8fg9`bnCK7yDtE~)db&lg#Rw4S%sZ_C$e zgQa`l@q1%!HRX{SJ>XccVl5f_RmVKA>9Hd^-=mAr2D8sE35czm%W+h2ME4815=Bhi zw4-L>1d+2{g^!pw+2f<(g!UUILz)sAp(mVkmqd%+X0}E*d0Jd0xGVUHHK$Qj>pKJX zP8hLphz^PNHqPnM+61%Dpo-qhgY?frt-OJ_2k zc%43I{!=k)8$WE;Hm*3QZUCb=ed5kj{Z35!^9i^A4FHOsU9+ItV$iEq&5ea^@e(sK z9jt8q>?s{(5clgVYV@#=s+-oKm9!kOX>30$ujS%Jq}sb=fh37labr$GaYOT|Hux-m2!HIb-p8nDDwGt##_jqXl|Q zoW8J2LkfRgsab$W*-xq}o!YKKizf@-9)=e;BzRvEXVM24Kkn-;Fl*hql9!bYT zQX4JHHVt_D4`2@JZ@b@{_WeruAp+5dzf5DkQ4_I%{>mz$Je}A(nb<1Rxz;Z{#dT~W zxW1Gkbg#R&=9BW-pvHdM|sWP<~I*Y_RNk!iRT?Y_GhHFC%>)Q+5B>7~ zoYqoDyrY^`N}6oeBM1(+Y!S+>nC>M0P)Wa>GM|;%qUSpP7PfxwY^0W^!s1LMmR?-i zw$2$1)>l}iD=w3ccta1Ej+5UEfKesxS0gxJNrF$Yv1ttGfZPwR**Seu~bs}X^ zClG~xSVmX-@ML9r^!XF<(U$6$pCr6o%r@FD1^VcAbjbS1iLpF3lo#98E^7Fj$ufA$ z1+yM-G!ZYpk2l@`BG+qcwuPK`5eNyFZ;(eH<5eFJe;Jn=x$#Q8fIjU^tG zhdqc}ea@UVK){Sq&xN-y*QxwsN~WBJ6tg1M+z{W;s4p;mrsTPgdY?JML{u89Fzj3K^agElm}s; s5~vI!Kvhs3)B=&9HmC#Yg2o^UGy}~+TM!MN2Ax4C@C@idYT=jr7q#8mfk0I63fVwyk%7b*d^C{|QK9}sKe9iO?O(weL5PYb;v-{; zQD=dOC~`z7DLN(^V4gff2#qBIvEly208%*7pGJi0i5i0^ArROI_zVOHbI?KLK@haZ z&~m73i#JOq3k8m1L2}3BX} z3k(V2gTf{MtWtCccoYMH!qEmu7#(7ZfP-m{{%Zv_X=a8$4iuah3YVcLf#E8kLl(;| z2jfB@3}LWC7TGp`|coLdIQ2LrEpDkjPa6cCHB2&Vi9!bfvrt)$3- z8uLA%AVMGt|LKaLR03fEVJ0{R!i@R9&a{Iy_~VC~#{bFM0PcA}Fd)oW>Hl<4K+qtv zAWS<7LtNdp!r7~egc{7Pu z*!#n?(-fSy1@|USC_@^c^IMaX9;AdN)t|fzHmubBS}P>Ef77 zX;kPUfpN#-G6tSqrq}yo+exk0@hIjRCb7T$})cm$F(x-fOq1!j&&=uy>$?VE?-O2tG4mCG#7lf^igRkkVn(_ zUWny~)AHx9zjxMr-dEMyrmYptzL|By^Gv}={fOQ-@e4L$Yr_v#Lvi(^KnNL zv1tMAB1_+73MZ{4bt*X$Tia$m8+++X1*Y(&KIOq~ZNIX|8P3E;wX|PPQYBpyN&E?7!IM=g}z849BSd;yj-+<`96@aL~L4{csS(*u40g;5J?RXmtFe=2~;<^2% zm1v1@W!!_*P%z+75Q{&Aog5KEB8Nva4KRNQhd%1s-yH|7>`g)i8e_aZKHn<~ig^N-1e)%jT!N{sJj5R0+J0QX^vR_FjEg*}(B`l`Bq6HkT$hVb*9g zl(6bt$5{2J;V9jv5=(uR4TjRk-1 zIm`x9qT6t`I{n5oc@Z{M=wpu{mG)ruAc|3FUuJ5e)-a>YLs44qQof8(^(fFqijgkGFXe>50|iB~QVPPqJx16NRoH zH!CB|aJv0NGSm6fis_5DiFqdF^F6KTJclc(RL{f4hBxJPON@I7+GO)05rYn&RMX=5 ziRGJPbAw)oGE-7(3riKeuKm{FQ2YArP<_s8aVJUz=X?BR6%$DGs1Hxx{t;xO@t{1l zqtbA&z`Yl;>8N)YLag9_+{IFSAWV6z`zof^ciK@kyx@(buE^+SVfp%Lh3n=w9Fx+e zgM|Ki7Jph<<+c#{Gk^FLa~h1Pu)@6yomAIZH~0z{RFVZcuH9?C>RM-~@my&mK})*p z7)_fyN0WNqpD^#aMJl=9>5gn8X;B@b1XcU0vf6_PO5SOAu@S%Neq6M6O3{uNt2!oM z`ow!_czgLxx<{xLhrh+q;__R%b&hyT+>G41iQsLux|^{+4se`tpWAMpb|cuFq*$WY3)b+$W`K{6QbYO6iA)iiC6u5Uhvs`9e_yY( zQF=vjD`WV*`XTW27ssm~{g>GSXQGjThy$t17I_t>iL57V=er%FiX^AZI!d9g%V$S9 z9t4Y?aUqH|*}6&Gbiu<)9z-U;@|L*$tT@0)N}_f_FKMAhX(Onxqn~$GSa~rSJE@lU z@VnA{N&DaLs8yKz7eB;PZ0L=Ky zdTB-jWJ&RjU8kZCqSJCz_V||5xP<5#^B3Bo!p{w&l81J?v8+~qeJ<{MxPqPSI-Wb2 za(RURQi8_I;!*UIeTVM0%n-gwAqmp%k&j+T)*GX~nr%WGi3Q0?lnBxhr`2O0pxv2HYlzLv%89qKnnE4Qp$=U?v6rd!*JyF4k_Gni&kOToc6N3SwSsbEoaix5(^p*I zedn$3TvHK|8@$LH0Q;(LA3U}M=wyiG*bQ;@t9|Nw+>!s;_35&k%QH5XNfU!ow&9zM zeb`sa@Rhr$}bgh~dsD680bV2}E)%ugD~YGsX`7a(3SX*r9!dQgtNKg<;k z6Pud~Jm7f_$OjzF&zu}htpDXBay?As#MIj#u${6=!_L1oXSp9}v@Mo%S$S}I6e&J^ z%NllmexJqahBA*9Me*kX+s0Jxx(;IPPBEv24^A@an?kD~%Q8<~d}Pr$LrI4 zpBrAlFYKRwY01B@SaEMY|5&inppRKDZbB?%d-gZkOdOkwyQ4lEviY*n=b~*u(=xr9 z`g>AW%Mvkse8#JgOTz+psSWG$X87or#V&AKze}BRUhm|iY~Is(Wkr={JzjE6tIvKm z>Eg(7?ILgTi+w4>6D(!jGQI~wH!KCsBBLI@<%|Dz$AwRNqNU@s2k*Wj~4AC%%a6|B!tj*rTS; zz8l>VyM`U6xQhif@Wi-qJ3SKfd{kcPM8@4^Ojxy?63@)_@$9&#n9v)xLF4#Q_o;Wi zuIp;OPzJW|x|&|=;mHg?GI}fHTbY-mp2>9o=GME2-3G1wp@LIe&-R-hmoyyPt=g-y zDco{)w#Rd);A2zpia?_J0n1%@;_KV1rDm(AHEI}alo|$K@cwz}rXGdgjOLHOY8d$W z@e6{t(B6pp>TfO$UP4bQ>#3feCXK#a0e5(_FVyQ-rNlqHx;osLW_Atdm~d!G|C;`G z3YXrj1mPn(Ju>aKV;1IC8gcBGYSkCd{*y?w!Z@pcx*R-3lA48ks>qYN1xZu$QbJOU zs&aQbDYd#O2(0J9)mjs7`POqW#Jbg&P(0P_FAY(AOICKL$>0>Z#wfCwNCNB}563P1zW zfE*wXD1!fP44?|A$pGrWaXD diff --git a/ebin/dhtcrawler.app b/ebin/dhtcrawler.app index 8484798..7a1eaaa 100644 --- a/ebin/dhtcrawler.app +++ b/ebin/dhtcrawler.app @@ -1,6 +1,6 @@ {application,dhtcrawler, [{description,"A DHT crawler to index magnet hash to torrent"}, - {vsn,"e46c264"}, + {vsn,"980c6ca"}, {registered,[dht_crawler_sup]}, {applications,[kernel,stdlib,crypto,public_key,ssl,inets,bson, mongodb]}, @@ -12,9 +12,9 @@ hash_cache_writer,hash_download,hash_download_cache, hash_reader,hash_reader2,hash_reader_common, hash_reader_stats,hash_reader_sup,http_cache, - http_handler,index_builder,index_download,index_file, - loc_torrent,loc_torrent_cache,loc_torrent_sup, - name_seger,rmmseg,string_split,time_util,tor_builder, - tor_download,tor_download_stats,tor_location, - tor_location_reader,tor_location_writer,tor_name_seg, - torrent_file,transfer,urldecode,vlog]}]}. + http_common,http_handler,index_builder,index_download, + index_file,loc_torrent,loc_torrent_cache, + loc_torrent_sup,name_seger,rmmseg,string_split, + time_util,tor_builder,tor_download,tor_download_stats, + tor_location,tor_location_reader,tor_location_writer, + tor_name_seg,torrent_file,transfer,urldecode,vlog]}]}. diff --git a/ebin/http_common.beam b/ebin/http_common.beam new file mode 100644 index 0000000000000000000000000000000000000000..689b3774af7836a04f6846df14f0f31400adba84 GIT binary patch literal 1652 zcmaJ>2}~4M7@pbLgJC&_S)~$;9nhksL==tIYj@b0-5pqFc4udo%c}K= zZGfhNwoYrks$ioaG_fkt6ljCCqEfXHP_Zr27PUpt7O%#>w?bmtq%ZmQ|NrlO@B8P? zzBlO$7snuo+Lk&uWkHH06d?%G1EAAdCCP3u2}MN$Pg+>X;ACmhWHl7BrNx5C_(ICf zvBd@}?X=>sau{gQg1bZ;!A>^el7JHW!P# zc!o7|Jj(<)1yM4XIU8%pFEu#1GFIi$Dj}~e5*Qbl;dry4WK?#{qkf8)hsRGbmuOg3sL>NOYkg=8BvhK2->J8F&W7r^k|ERA<$0f=pm_G^hbGvg7hXS^j=awmfVj~sTeUisb81e zucK0RM4VP-oE(SgFeFbBm%xo=6xm^14)+3}0#E~>qqWy)j)Uk8paAd%@EgtHI|u-P z`mr2pV6FpD%q{Ww>p>2^{Q;mBdcYhGEr1UI+oC|8JRINoG)F>Hay-_43n z(4Y`e#YZMZ#z0OfaYd|Eoe%!V8?=TFqac2og69IwPVR3-xEy~d*Ss)Dz!N$ z{P$jC-Uw0?wxA~L&&z9ClJnEZ>KR>r+u!*6LPkdZw3q*S&pz^`*fMo!!!~&{wq?g9 zGIYVn#h{Q|VUuD-?TT~EQqIqB^4G5Fp_0Z|7G|a!O!ZmKAMWowZ<;c^YMkLjM@v%Q zB3tv5uh+dyiqY7^L{AcR3o&2LAYD${Rwl=!z?Kb~-_4w(> zPNs$@gbduCzjXMeyt<|{XU{i>hkp95qJ7zvs(q%t>$azCx#7rj1UW`1--}OHZ{Lw~ zx%QoJw+1jl**<2k6}O^Wxypy{Z@k|1G~>*hS@EZL^@ny`3H)S@Z`_@>j)txBYTvlQ znqEBi_?BPX#8u^x*ty6jMe9AmvCbWU-Ty6Xw|3Uh-g6a=*D}qO^ENsT-<_UtE!kRM zUR&|yX(RJs>);yl;LJO7Zv^(c{{RmH5nxMj^mm z7Lv0pbCG$%{OFU`L|1{c1*Q z_rS*w4!oH-b^ZRE*RbBcLI0BjL$`bK56y{f+XY?G~Zcf)r_42L%Dt4(|IOdWM`V14UX2kYcc zH>V@FsXM>M32x$Og1KxYjH-&8a V2@k+YT!)XtgYk*Tr2jvM$Un2?4PXEO literal 0 HcmV?d00001 diff --git a/ebin/http_handler.beam b/ebin/http_handler.beam index 017a56436fb687f5d97e6fc59cd87a7d211a9d07..5002a32434ea4d97cd263b24885bafee8ac5bd9b 100644 GIT binary patch delta 7101 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 delta 7231 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