var gra_obj = [{'hex':'#A7BFD7','pos':0}, {'hex':'#336699','pos':25}, {'hex':'#439400','pos':40}, {'hex':'#D69200','pos':55},{'hex':'#D63200','pos':70}, {'hex':'#D60081','pos':85},{'hex':'#D60004','pos':100}]; function ini(){ get_tw(tag_default);get_buzz();set_event();self = location.pathname.split('/').pop()?location.pathname.split('/').pop():'index.php';} function set_event(){ $('#buzz_cap').append($('<a/>').attr({'href':'#'}).text('[更新]').click(function(){get_buzz();return false;})); $('#tag_cap').append($('<a/>').attr({'href':'#'}).text('[更新]').click(function(){get_tw(crr_q);return false;})); $('#reset').click(function(){get_tw(tag_ignore);return false;});$('#btn').click(function(){ $('#frm').submit();});$('#frm').submit(function(){var tmp_q = $('#q').val();var a_history = $('<a/>').attr({'href':tmp_q}).text(tmp_q); get_tw(tmp_q);mng_history(a_history);return false;});$('#test').click(function(){alert('unk');return false;});$('#history_box').append($('<span/>').addClass('dflt').text('履歴はありません')); $('#history_box a').live('click', function(){get_tw($(this).attr('href'));mng_history(this);return false;}); } function get_tw(q){crr_q = q;buf = '';$('#tw').empty().append($('<li/>').addClass('tweet').text('loading...'));$('#tag_tgt').text(q==tag_ignore?'日本語TLから抽出':'「'+q+'」'+'の関連タグ'); var locale = 2<q.length?'locale=ja&':''; $.ajax({url:'http://search.twitter.com/search.json?'+locale+'lang=ja&rpp=75&q='+q,type:'get',dataType:'jsonp',cache:false,error:function(){},success:function(r){ $('#tw').empty(); $(r.results).each(function(){buf += this.text+' '; var tmp_text = cnv_text(this.text);var tmp = $('<li/>').addClass('tweet');$(tmp).append($('<a/>').attr({'href':twitter_url_base+this.from_user, 'target':'ext'}).append($('<img/>').attr({'src':this.profile_image_url}))).append($('<div/>').addClass('from_user').append($('<a/>').attr({'href':twitter_url_base+this.from_user, 'target':'ext'}).text(this.from_user)).append($('<a/>').addClass('chk_user').attr({'href':this.from_user}).text('[このIDを調べる]').click(function(){var tgt_user = $(this).attr('href');$('#q').val(tgt_user);$('#frm').submit();return false;}))) .append($('<div/>').addClass('created_at').text(cnv_date('Y/m/d(x) H:i:s',this.created_at))).append($('<div/>').addClass('text').html(tmp_text));$('#tw').append(tmp); }); $('#tw').append($('<li/>').addClass('tweet').attr({'id':'gotop'}).append($('<a/>').attr({'href':'#'}).text('[先頭に戻る]').click(function(){$(window).scrollTop(0);return false;}))); buf = buf.replace(/[\w]+\.html/g,"");buf = buf.replace(/ RT /g,"");buf = buf.replace(/&gt;|&lt;|&quot;|&amp;|&#039;/g,"");buf = buf.replace(/\n/g, '');buf = buf.replace(/(@\w+)/g, '');buf = buf.replace(/(#\w+)/g, '');buf = buf.replace(/(http:\/\/[!-~]+)/gi, '');kw(buf);hl('.text', q, 'hl'); },complete:function(){}});} function set_twitter(atag){$(atag).text('url圧縮中...');var url_base = location.href.split('?').shift();var add_self = url_base.split('/').pop()?'':self;var qstr = crr_q==tag_ignore?'':'?q='+encodeURIComponent(crr_q);var crr_req = url_base+add_self+qstr;crr_req = encodeURIComponent(crr_req); $.ajax({ url:'http://json-tinyurl.appspot.com/?url='+crr_req,type:'get',dataType:'jsonp',cache:false,error:function(){alert('短縮失敗！');},success:function(r){var tinyurl = r.tinyurl;var sig = '... '+tinyurl; var tag = '';$('#tag_box a:not(:last)').each(function(){tag += '　'+$(this).text();});var txt = '【'+$('#tag_tgt').text().replace(/「|」/g, '')+'】'+tag;tmp = txt.substr(0, (140-sig.length))+sig;var href = twitter_url_base+'home?status='+encodeURIComponent(tmp); clk = true;$(atag).attr({'href':href}).text('twitterの入力欄にセット');alert('「twitterの入力欄にセット」をクリックすると別窓が開きます'); },complete:function(){}}); } function set_twitter_(){var url_base = location.href.split('?').shift();var add_self = url_base.split('/').pop()?'':self;var qstr = crr_q==tag_ignore?'':'?q='+encodeURIComponent(crr_q);qstr = '';var sig = ' '+url_base+add_self+qstr;var tag = '';$('#tag_box a:not(:last)').each(function(){tag += $(this).text()+'　';});var txt = $('#tag_tgt').text()+"："+tag;tmp = txt.substr(0, (140-sig.length))+sig;var href = twitter_url_base+'home?status='+tmp;return href;} function mng_history(elm){$('#history_box .dflt').remove(); var href = $(elm).attr('href');var color = $(elm).css('color');var size = $(elm).css('font-size');size = '100%'; $("#history_box a:contains('"+href+"')").remove(); var tmp_a = $('<a/>').attr({'href':href}).text(href).css({'font-size':size, 'color':color});$('#history_box').prepend(' ').prepend(tmp_a);if(20<$('#history_box').children().size()){$('#history_box a:last').remove();}var history_cnt = $('#history_box').children().size();$('#history_cnt').text('('+history_cnt+')'); } function mng_history_old(elm){$('#history_box .dflt').remove();tmp_tag = $(elm).css({'font-size':'100%'}); $('#history_box').prepend(' ').prepend(tmp_tag);if(20<$('#history_box').children().size()){$('#history_box a:last').remove();}var history_cnt = $('#history_box').children().size();$('#history_cnt').text('('+history_cnt+')');} function get_buzz(){$('#buzz_box').empty().text('loading...');$.ajax({url:'http://trend.hoge.in/api/twitag/get_buzz.php',type:'get',dataType:'jsonp',cache:false,error:function(){},success:function(r){$('#buzz_box').empty();$(r).each(function(){var row = this;$('#buzz_box').append($('<a/>').text(row.word_key+'').attr({'href':row.word_key}).css({'font-size':'100%','color':gra(gra_obj, (row.word_val/2))}).click(function(){get_tw(row.word_key);mng_history(this);return false;}));});},complete:function(){}}); } function kw(text){ $('#tag_box').empty().text('タグ生成中...'); $.ajax({url:'ajax/get_tag.php',type:'post', data:{'text':text},dataType:'jsonp',cache:false,error:function(){},success:function(r){ var ary = prcs(r);var len = ary.length;var rnd = gene_rnd_num_ary(len); if(r.Error){$('#tag_tgt').text('他のワードでおながいします');alert('(･ω･`)');$('#history_box a:last').remove();return false}else{$('#tag_box').empty();} for(var i=0; i<len; i++){var tgt = ary[rnd[i]]; $('#tag_box').append($('<a/>').text(tgt.k+'').attr({'href':tgt.k}).css({'font-size':((tgt.v*1.5)+50)+'%','color':gra(gra_obj, tgt.v)}).click(function(){get_tw($(this).attr('href'));mng_history(this); return false;})).append(' ');} $('#tag_cnt').text('('+$('#tag_box').children().size()+')'); if($('#tag_box').children().size()!=len){alert('error');$('#tag_box').append($('<a/>').text('[リセット]').attr({'href':tag_ignore}).css({'font-size':'100%','color':gra(gra_obj, 50)}).click(function(){get_tw($(this).attr('href'));return false;})).append(' ');} $('#tag_box').append($('<a/>').attr({'href':'#','id':'set_twitter', 'target':'ext'}).text('[twitterにPOST]').click(function(){if(!clk){set_twitter(this);return false;}else{$(this).text('[twitterにPOST]');clk = false;}}) ); },complete:function(){}});} function cnv_text(text){text = text.replace(/(http:\/\/[!-~]+)/gi, "<a href='$1' target='ext'>$1</a>");text = text.replace(/@(\w+)/g, function(){return "<a href='"+twitter_url_base+RegExp.$1+"' target='ext'>"+'@'+RegExp.$1 + "</a>";});return text;} function hl(target, q, className_str){if(q!=tag_ignore){$(target).highlight(q, className_str); }} function cnv_date(fmt_str, dt_src){ var dt_ary = dt_src.replace(',','').split(' ');var dt_str = dt_ary[2]+' '+dt_ary[1]+', '+dt_ary[3]+' '+dt_ary[4];var dt_tmp = new Date(dt_str); dt_tmp.setHours(dt_tmp.getHours() + 9);var Y = dt_tmp.getFullYear();var m = dt_tmp.getMonth() + 1;var d = dt_tmp.getDate();var H = dt_tmp.getHours();var i = dt_tmp.getMinutes();var s = dt_tmp.getSeconds();var w = ["日","月","火","水","木","金","土"]; var dt = {};dt['Y'] = Y;dt['m'] = m<10?"0"+m:m;dt['d'] = d<10?"0"+d:d;dt['H'] = H<10?"0"+H:H;dt['i'] = i<10?"0"+i:i;dt['s'] = s<10?"0"+s:s;dt['x'] = w[dt_tmp.getDay()]; var out = '';fmt_ary = fmt_str.split('');for(var i=0; i<fmt_str.length; i++){out += dt[fmt_ary[i]]?dt[fmt_ary[i]]:fmt_ary[i];}return out;} function gra(obj, per){var rgb = [];var pos = [];var tgt, len = obj.length;var st,ed;per = 100<per?100:per;for(var i=0; i<len; i++){pos[i] = obj[i]['pos'];rgb[i] = hex2rgb(obj[i]['hex']);} for(var i=0; i<len; i++){ed = i;if(per<pos[i]){break;}st = i;} st = per==100?st-1:st;var spn = (per-pos[st])/(pos[ed] - pos[st]); var r_st = rgb[st][0];var r_ed = rgb[ed][0];var r_df = r_ed - r_st;var g_st = rgb[st][1];var g_ed = rgb[ed][1];var g_df = g_ed - g_st;var b_st = rgb[st][2];var b_ed = rgb[ed][2];var b_df = b_ed - b_st; var r_tmp = r_st + Math.round(r_df * spn);var g_tmp = g_st + Math.round(g_df * spn);var b_tmp = b_st + Math.round(b_df * spn); return ((1<<24)+(r_tmp<<16)+(g_tmp<<8)+b_tmp).toString(16).replace(/^1/,'#').toUpperCase();}function hex2rgb(hex){var rgb, tmp;hex = hex.replace(/[^0-9a-f]+/ig, '');switch(hex.length){case 3:rgb = hex.split('');break;case 6:rgb = hex.match(/(\w{2})/g);break;default:alert('invalid hex');return false;break;}for(var i=0; i<rgb.length; i++){tmp = parseInt(rgb[i], 16);rgb[i] = rgb[i].length == 2?tmp:tmp*16 + tmp;}return rgb;} function prcs(jsn){var ary = []; $.each(jsn, function(k, v){var tmp = {};tmp['k'] = k;tmp['v'] = v;ary.push(tmp);});return ary; } function gene_rnd_num_ary(n){var nums = [];for(var i=0; i<n; i++){nums.push(i);}return ary_shfl(nums);} function ary_shfl(a){var i = a.length;while(i){var j = Math.floor(Math.random()*i);var t = a[--i];a[i] = a[j];a[j] = t;}return a;} 