nazr.inのサービスを使ってアドレスを短縮するスクリプト

nazr.in/docs/devに書かれているテキストAPIを使用して短縮URLを取得します。

nazr.in/docs/devに書かれているテキストAPIを使用して短縮URLを取得します。

/*
	nazr.inのサービスを使ってアドレスを短縮するスクリプト
	と、それを関数一つを呼び出して取得できるようにするモジュール

	nazr.in/docs/devのテキストAPIを使用します。

*/

#if 1

; 普通に呼び出す
#include "hspinet.as"
	NetInit	; net系命令を初期化
	TargetURL  = "http://miyahiro-shiki.com/"	; 短縮するアドレス
	ServiceURL = "http://nazr.in/api/shorten?url="	; nazr.in APIのアドレス
	NetUrl GetPath(ServiceURL,32)	; APIのアドレスを指定して
	NetRequest_Get GetPath(ServiceURL,8)+TargetURL	; ダウンロード開始
	res = 0
	While(res==0)
		NetExec res	; 処理を続ける
	WEnd
	if(res){
		NetGetV ret	; 変数へ結果を移す
		mes ret	; 出力
	} else {
		mes "miss"
	}
	NetTerm	; net系命令の終了
	stop

#else

; モジュールでラッピングしたバージョン
; 前提MODとしてhspinet.asが必要
#include "hspinet.as"
#module NazrinAPI
; 短縮されたアドレス = GetNazrin(短縮するアドレス)
#defcfunc GetNazrin str p1
	if strlen(p1) == 0 :return "error"	; 空ならば処理しない
	NetInit@	; とりあえずの初期化
	TargetURL  = p1
	ServiceURL = "http://nazr.in/api/shorten?url="	; nazr.in APIのアドレス
	NetUrl@ GetPath(ServiceURL,32)	; APIのアドレスを指定して
	NetRequest_Get@ GetPath(ServiceURL,8)+TargetURL	; ダウンロード開始
	res = 0
	While(res==0)
		NetExec@ res	; 処理を続ける
	WEnd
	if(res){
		NetGetV@ ret	; 変数へ結果を移す
	} else {
		ret = "miss"
	}
;	NetTerm@	; 解放はしない
return ret
#global

	; 呼び出してみる
	mes GetNazrin("http://miyahiro-shiki.com/")
	stop

#endif