贴图 paste-img.pl 这下终于爽了。最新最短的脚本更新。

sh/bash/dash/ksh/zsh等Shell脚本
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

贴图 paste-img.pl 这下终于爽了。最新最短的脚本更新。

#1

帖子 eexpress » 2009-12-30 12:51

新脚本。做成列表了。统一的最简调用格式。使用了xsel libwww-mechanize-perl libnet-dbus-perl

代码: 全选

● cat paste-img.pl
#!/usr/bin/perl -w

use utf8;
use strict;
use WWW::Mechanize;
use Net::DBus;

my $bus = Net::DBus->session->get_service('org.freedesktop.Notifications')
->get_object('/org/freedesktop/Notifications','org.freedesktop.Notifications');
my $mech = WWW::Mechanize->new();
my $web_select="imagebin";	#选择贴图网站的缩写短语,会在列表中自动匹配的。
my $add;
#======================
my %web=(	"http://www.cjb.net/"=>{"image"=>$ARGV[0]},
		"http://kimag.es/"=>{"userfile1"=>$ARGV[0]},
		"http://imagebin.org/index.php?page=add"=>{"nickname"=>"eexp","image" => $ARGV[0],"disclaimer_agree"=>"Y"},
		"http://paste.ubuntu.org.cn/"=>{"poster"=>"eexp","screenshot"=>$ARGV[0],"code2"=>join("\n",`xsel -o`)},
	);
foreach (keys %web){$add=$_,last if /$web_select/;}
if(!$add){$bus->Notify("paste-img", 0, "error", '无效网站地址', ':(', [], { }, -1);exit;}
print $web_select."\n";
#======================
$mech -> get($add);
$mech -> submit_form(with_fields => $web{$add});
#======================
if ($mech->success()) {
	my $rr=$mech->uri();
	print "贴图地址: $rr 。\n";
	`echo $rr|xsel -i`;
	$bus->Notify("paste-img", 0, "sunny", '贴图地址', $rr, [], { }, -1);
} else {
	$bus->Notify("paste-img", 0, "error", '贴图失败', ':(', [], { }, -1);
	print "ERROR:\t".$mech->status()."\n";
}
#======================
老脚本

代码: 全选

● cat paste-img.pl
#!/usr/bin/perl -w

use utf8;
use strict;
use WWW::Mechanize;
use Net::DBus;

my $mech = WWW::Mechanize->new();
my $web_select="cjb";
#my $web_select="kimag";
#my $web_select="ubuntu";
#======================
#----cjb----
if($web_select eq "cjb"){
$mech -> get("http://www.cjb.net/");
$mech -> submit_form(
	with_fields => {"image" => $ARGV[0]});
}
#http://www.cjb.net/images.html?d2bbe.jpg
#http://images.cjb.net/d2bbe.jpg
#======================
#----kimag----
if($web_select eq "kimag"){
$mech -> get("http://kimag.es/");
$mech -> submit_form(
	with_fields => {"userfile1" => $ARGV[0]});
#        form_number => 1,
#        fields => {"userfile1" => $ARGV[0]});
}
#http://kimag.es/view.php?i=55323637.jpg
#http://kimag.es/share/55323637.jpg
#======================
#----paste.ubuntu----
if($web_select eq "ubuntu"){
$mech -> get("http://paste.ubuntu.org.cn/");
$mech -> submit_form(
	form_name => "editor" ,
	fields => { 
	"screenshot" => $ARGV[0],
	"code2"	=> join("\n",`xsel -o`),
	"poster" => "eexp"
	} ,
	button => "paste");
}
#======================
my $bus = Net::DBus->session->get_service('org.freedesktop.Notifications')
->get_object('/org/freedesktop/Notifications','org.freedesktop.Notifications');
if ($mech->success()) {
	my $rr=$mech->uri();
	print "贴图地址: $rr 。\n";
	`echo $rr|xsel -i`;
	$bus->Notify("paste-img", 0, "sunny", '贴图地址', $rr, [], { }, -1);
} else {
	$bus->Notify("paste-img", 0, "error", '贴图失败', ':(', [], { }, -1);
	print "ERROR:\t".$mech->status()."\n";
}
#======================

● 鸣学
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

Re: 贴图 paste-img.pl

#2

帖子 delectate » 2009-12-30 13:05

不愧是神

但是也要等paste好了再上脚本吧……
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 贴图 paste-img.pl

#3

帖子 eexpress » 2009-12-30 13:06

WWW::Mechanize 填表规则:
下载网站的html。
找到需要提交的 HTML::Form 结构。就是
<form action="http://upload.cjb.net/" enctype="multipart/form-data" method="post"><input name="images" type="hidden" value="1"><td colspan="2"><table cellpadding="0" cellspacing="0" width="100%"><td width="100%"><input name="image" style="font-size:10px;width:100%" type="file"></td><td><input style="font-size:10px" type="submit" value="Upload Image"></td></table></td></form>

$mech -> submit_form() 的写法:
指定form
1。form有name的。form_name => "editor" 这样写。
2。form没name的。form_number => 1 这样写。就是vim里面,gg/<form回车,n 一直按,数数字而已。
指定fields, ARGV就是你要贴的图片路径
fields => {"image" => $ARGV[0]});

智能判断的,这样写。自动判断带此name的第一个form。
with_fields => {"image" => $ARGV[0]});
● 鸣学
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 贴图 paste-img.pl

#4

帖子 eexpress » 2009-12-30 13:06

额。2楼。上面3个网站。可选的啊。

代码: 全选

my $web_select="cjb";
#my $web_select="kimag";
#my $web_select="ubuntu";
● 鸣学
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

Re: 贴图 paste-img.pl

#5

帖子 delectate » 2009-12-30 13:26

eexpress 写了:额。2楼。上面3个网站。可选的啊。

代码: 全选

my $web_select="cjb";
#my $web_select="kimag";
#my $web_select="ubuntu";
sorry,没仔细看代码

最近精神状态不好
头像
tenzu
论坛版主
帖子: 36924
注册时间: 2008-11-21 20:26

Re: 贴图 paste-img.pl

#6

帖子 tenzu » 2009-12-30 15:41

又见神码 :em06
头像
leeaman
帖子: 30702
注册时间: 2007-02-02 18:14
系统: debian sid

Re: 贴图 paste-img.pl

#7

帖子 leeaman » 2009-12-30 17:24

赞cat :em02
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)
头像
roylez
帖子: 1928
注册时间: 2005-10-04 10:59
来自: 上海

Re: 贴图 paste-img.pl

#8

帖子 roylez » 2009-12-30 19:06

这么点东西,到处显摆……
弄个dropbox空间来备份文件或者做私人代码服务器
配置:[url]git://github.com/roylez/dotfiles.git[/url]
主页:http://roylez.heroku.com
各种稀奇玩意儿:http://dooloo.info
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

Re: 贴图 paste-img.pl

#9

帖子 delectate » 2009-12-30 19:10

拜见神……参见主席……
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 贴图 paste-img.pl

#10

帖子 eexpress » 2009-12-30 21:02

nnnd 我的代码和经验,都是共享的,给一切有需要的人。居然敢说是显摆。
● 鸣学
头像
highwind
帖子: 1362
注册时间: 2008-09-05 23:31
系统: LinuxMint17

Re: 贴图 paste-img.pl

#11

帖子 highwind » 2009-12-30 22:06

不是吧,又没有注释。。。 :em06
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

Re: 贴图 paste-img.pl

#12

帖子 delectate » 2009-12-30 22:24

eexpress 写了:nnnd 我的代码和经验,都是共享的,给一切有需要的人。居然敢说是显摆。
来晚了…… :em20
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 贴图 paste-img.pl

#13

帖子 eexpress » 2009-12-30 23:12

增加一个网站。
#======================
#----imagebin----
if($web_select eq "imagebin"){
$mech -> get("http://imagebin.org/index.php?page=add");
$mech -> submit_form(
with_fields => {"nickname"=>"eexp","image" => $ARGV[0],"disclaimer_agree"=>"Y"});
}
#======================
● 鸣学
头像
tenzu
论坛版主
帖子: 36924
注册时间: 2008-11-21 20:26

Re: 贴图 paste-img.pl

#14

帖子 tenzu » 2009-12-31 9:06

eexpress 写了:nnnd 我的代码和经验,都是共享的,给一切有需要的人。居然敢说是显摆。
神,把所有的码打个包上传吧
头像
wowoto
帖子: 3050
注册时间: 2009-04-11 12:17
系统: windows7

Re: 贴图 paste-img.pl

#15

帖子 wowoto » 2009-12-31 13:41

年末还不忘水一次...这次见到的都是大牛~ 好好水一把~~话说没有论坛对我等菜鸟就是一个杯具呀~

祝楼上各位牛: 新年快乐!
wowoto>ubuntu8.04>ubuntu9.04>Archlinux>FreeBSD8.0>Archlinux & end here.
回复