Skip to content

Instantly share code, notes, and snippets.

@kga
kga / keywordlist_furigana2skkdic.pl
Created January 11, 2009 23:04
Hatena::Keyword to skkdict
#!/usr/bin/env perl
# keywordlist_furigana2skkdic.pl
# original ruby code
# - http://rubyist.g.hatena.ne.jp/znz/20060924/p1
use strict;
use warnings;
use Encode qw/encode decode/;
use File::Temp;
#!/usr/bin/env perl
use strict;
use warnings;
use URI;
use WWW::Mechanize;
my $url = URI->new(shift) or die;
my %query = $url->query_form;
my $code = $query{ref};
#!/usr/bin/env perl
use strict;
use warnings;
use Perl6::Say;
use IPC::Cmd qw/can_run run/;
use YAML;
my $file = shift || 'sample.mp4';
// ==UserScript==
// @name Hatena::Bookmark - Favorite Users Ratio
// @namespace http://d.hatena.ne.jp/KGA/
// @include http://b.hatena.ne.jp/entry/*
// ==/UserScript==
(function() {
var th = $X('//th[contains(., "お気に入り")]')[0];
if (!th) return;
var favs = $X('count(./following-sibling::td/ul[@class="userlist"]/li)', th, null, XPathResult.NUMBER_TYPE).wrappedJSObject.numberValue;
@kga
kga / Rakefile
Created February 18, 2009 14:54
PLUGINS = %w{
appendAnchor
auto_source
char-hints-mod2
clock
copy
cpan-search
feedSomeKeys_2
hatena-bookmark-search
hints-yank-paste
// ==UserScript==
// @name Hatena::Bookmark - Highlight Favorite Users
// @namespace http://d.hatena.ne.jp/KGA/
// @include http://b.hatena.ne.jp/entry/*
// ==/UserScript==
(function() {
var th = $X('//th[contains(., "お気に入り")]')[0];
if (!th) return;
var favs = $X('./following-sibling::td/ul[@class="userlist"]/li/img', th).map(function (img) img.title);
@kga
kga / ldr2graph.pl
Created March 2, 2009 22:37
ldr2graph
#!/usr/bin/env perl
use strict;
use warnings;
use Config::Pit qw/pit_get/;
use LWP::Simple qw//;
use List::Util qw/sum/;
use WebService::Hatena::Graph;
my $hatena_id = 'KGA';
// ==UserScript==
// @name Compare Hatena Graph
// @namespace http://shinten.info/
// @include http://graph.hatena.ne.jp/*
// @require http://gist.github.com/raw/3238/0b1c093e30415be1109f9a36664ebd56e0e7300b
// ==/UserScript==
(function () {
var color = 'rgb(240, 240, 240)';
var graphs = {};
var id = location.href.match(/graph\.hatena\.ne\.jp\/([^\/]+)\//)[1];
// ==UserScript==
// @name STARCAT Channel Guide Prettifier
// @include http://tv.starcat.co.jp/channel/weekly/*/*
// ==/UserScript==
var colors = ['#DDFFEE', '#DDFFEE', '#FFFFDD', '#DDF5F5', '#EEEEFF', '#FFEEEE'];
var shows = ['NUMBERS' /* 'HOUSE', 'BONES', 'NCIS', 'NIP/TUCK', 'ブラックファイル' */];
GM_addStyle(colors.map(function (c, i) '.color' + i + ' { background-color: ' + c + '; }').join('\n'));
package App::SocialSKK::Plugin::ZipCode;
use strict;
use warnings;
use URI;
use URI::QueryParam;
use URI::Escape;
use JSON::Syck;
use base qw(App::SocialSKK::Plugin);
sub get_candidates {