#packopt name "¥¿¥¤¥à¥¿¥°ÉÕ¤²Î»ìϢ³¼èÆÀ¥Ä¡¼¥ë"
#packopt hide 1
#include "user32.as"
#include "shell32.as"
#include "comctl32.as"
#include "kernel32.as"
#include "ole32.as"
#include "mod_regexp.as"
#uselib "imagehlp.dll "
#func global MakeSureDirectoryPathExists "MakeSureDirectoryPathExists" str
#uselib "shlwapi.dll"
#cfunc global PathMatchSpec "PathMatchSpecA" sptr,sptr
#include "hspext.as"
;//2¥Ð¥¤¥Èʸ»úȽÄê
#define ctype wbyte(%1) ( (( (129<=%1)&(%1<=159) )||( (224<=%1)&(%1<=252) )) )
#include "gblconst-sysval.hsp";
#include "exlistview'.hsp"
#include "mp3infp_ExportFunc_HSP.hsp"
#include "lua-xl.hsp"
#include "Modules.hsp"
;¥ê¥¹¥È¥Ó¥å¡¼ID
#enum LIST_POINT = 0
#enum LIST_FOLDERNAME
#enum LIST_FILENAME
#enum LIST_TITLE
#enum LIST_TITLE_DATA
#enum LIST_ARTIST
#enum LIST_ARTIST_DATA
#enum LIST_ALBUM
#enum LIST_ALBUM_DATA
#enum LIST_TIME
#enum LIST_TIME_DATA
#enum LIST_LYRICSITE
#enum LIST_DATABASE
;¥¦¥£¥ó¥É¥¦ID
#define global WindowID_Main 0
#define global WindowID_Setting 2
#define global WindowID_ShowSite 1
;¥¿¥¤¥È¥ë
#define app_title "¥¿¥¤¥à¥¿¥°ÉÕ¤²Î»ìϢ³¼èÆÀ¥Ä¡¼¥ë"
;¥Ð¡¼¥¸¥ç¥ó
#define app_version "ver. 0.2.2"
;// ¥á¥¤¥ó¥¦¥£¥ó¥É¥¦ºîÀ®
screen WindowID_Main, ginfo_dispx, ginfo_dispy, 0, ,, 640,480
title app_title
; ¼«¥¦¥£¥ó¥É¥¦¤Î¥¹¥¿¥¤¥ë¤òÊѹ¹
; $10000 = ºÇÂç²½¥Ü¥¿¥ó͸ú
; $40000 = ¥¦¥£¥ó¥É¥¦¥µ¥¤¥º²ÄÊÑ͸ú
GetWindowLong hwnd, -16
SetWindowLong hwnd, -16, stat | $10000 | $40000
// ÀßÄêÊÑ¿ô
FileSavePos = "" ;Êݸ¥Õ¥¡¥¤¥ë¾ì½ê
FileSaveExt = ".lrc" ;Êݸ¥Õ¥¡¥¤¥ë³ÈÄ¥»Ò
LyricsMasterPass = "" ;LyricsMaster¤Î¥Ñ¥¹
FileNameFilter = "" ;¶ÊÅÐÏ¿»þ¤Î¥Õ¥£¥ë¥¿
FileNameFilterRegExpCheck = 0 ;¥Õ¥£¥ë¥¿¤òÀµµ¬É½¸½¤Ë¤¹¤ë
MusicFileExts="*.mp3,*.m4a,*.wma,*.wav,*.ogg,*ape" ;¥ê¥¹¥ÈÅÐÏ¿¥Õ¥£¥ë¥¿
Option_CheckerPoint=90 ;¥Á¥§¥Ã¥¯´ð½à
Option_WeightTitle=100
Option_WeightArtsit=60
Option_WeightAlbum=40
Option_WeightTime=30
;//¥°¥í¡¼¥Ð¥ëÊÑ¿ô
rec_dat = "" ;¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÀ¸¥Ç¡¼¥¿
LUA_hmiku = "" ;½é²»¥ß¥¯Wiki¤«¤é²Î»ì¤ò¼èÆÀ¤¹¤ë¤¿¤á¤ÎLUA¥¹¥¯¥ê¥×¥È
LUA_touhoukashi="" ;ÅìÊýƱ¿ÍCD¤Î²Î»ì@Wiki¤«¤é²Î»ì¤ò¼èÆÀ¤¹¤ë¤¿¤á¤ÎLUA¥¹¥¯¥ê¥×¥È
hlist = 0 ;¥ê¥¹¥È¥Ó¥å¡¼¤Î¥Ï¥ó¥É¥ë
tb_hWnd = 0 ;¥Ä¡¼¥ë¥Ð¡¼¤Î¥Ï¥ó¥É¥ë
tb_id(0) = 0 ;¥Ä¡¼¥ë¥Ð¡¼¤Î¥Ü¥¿¥óIDÇÛÎó
ListViewPos=0,0 ;¥ê¥¹¥È¥Ó¥å¡¼¤Î°ÌÃÖ
toolbar_height=0 ;¥Ä¡¼¥ë¥Ð¡¼¤Î¹â¤µ
;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
; Header.hsp
;
; ¥Ä¡¼¥ë¥Ð¡¼ºîÀ®¡¢³ä¤ê¹þ¤ßÀßÄê¡¢¥á¥Ã¥»¡¼¥¸½èÍý
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
#include "Header.hsp"
;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
; Option.hsp
;
; ÀßÄꥦ¥£¥ó¥É¥¦ºîÀ®¡¦½èÍý¡¢LyricsMaster¸¡º÷Ãæ¤Î¾ÜºÙɽ¼¨Áë ºîÀ®
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
#include "Option.hsp"
;¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÅÀ¿ôÉÕ¤±¤Î½Å¤ß³ä¤ê¿¶¤êÀßÄê
PointInMusicList_option_set Option_WeightTitle, Option_WeightArtsit, Option_WeightAlbum, Option_WeightTime
//¥Ç¡¼¥¿¥Ù¡¼¥¹À¸¥Ç¡¼¥¿¼èÆÀ(¥Í¥Ã¥È)
rec_dat = GetHTMLSource("http://timetag.main.jp/herodb/timetag/rec.dat", Char_EUC, 1)
//²Î»ì¼èÆÀLUA¥¹¥¯¥ê¥×¥È¤ò¥í¡¼¥É
notesel LUA_hmiku
noteload "LUA/www5.atwiki.jp_hmiku.lua"
noteunsel
notesel LUA_touhoukashi
noteload "LUA/www31.atwiki.jp_touhoukashi.lua"
noteunsel
//¥ê¥¹¥È¥Ó¥å¡¼ºîÀ®
hlist=Createlstview(0, 0, ListViewPos(1),ginfo_winx,480-ListViewPos(1) )
GetWindowLong hlist, -16
SetWindowLong hlist,-16,stat|LVS_SHOWSELALWAYS|LVS_SINGLESEL|LVS_NOSORTHEADER
lsvexset hlist, LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES
lsvcladd hlist," ",LIST_POINT,0,50,0,0
lsvcladd hlist,"¥Õ¥©¥ë¥À",LIST_FOLDERNAME,0,60,0,0
lsvcladd hlist,"¥Õ¥¡¥¤¥ë",LIST_FILENAME,0,180,0,0
lsvcladd hlist,"¥¿¥¤¥È¥ë",LIST_TITLE,0,100,0,0
lsvcladd hlist,"DB",LIST_TITLE_DATA,0,100,0,0
lsvcladd hlist,"¥¢¡¼¥Æ¥£¥¹¥È",LIST_ARTIST,0,100,0,0
lsvcladd hlist,"DB",LIST_ARTIST_DATA,0,100,0,0
lsvcladd hlist,"¥¢¥ë¥Ð¥à",LIST_ALBUM,0,100,0,0
lsvcladd hlist,"DB",LIST_ALBUM_DATA,0,100,0,0
lsvcladd hlist,"ºÆÀ¸»þ´Ö",LIST_TIME,0,60,0,0
lsvcladd hlist,"DB",LIST_TIME_DATA,0,60,0,0
lsvcladd hlist,"²Î»ì¥µ¥¤¥È",LIST_LYRICSITE,0,120,0,0
lsvcladd hlist,"¥Ç¡¼¥¿¥Ù¡¼¥¹",LIST_DATABASE,0,300,0,0
stop
;
; ¡Ú¥¦¥£¥ó¥É¥¦ºîÀ® ´°Î»¡Û
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
; ¥ê¥¹¥È¥Ó¥å¡¼¡§¥Õ¥¡¥¤¥ë¤ò¥É¥í¥Ã¥×
;
; ¶ÊÅÐÏ¿ ½èÍý
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
*ListViewDrop
;//D&D¥Ï¥ó¥É¥ë
hDrop=wParam
;//D&D¸Ä¿ô³Îǧ
DragQueryFile hDrop,-1,0,0
DropNum = stat
//¥Ä¡¼¥ë¥Ð¡¼¤Î¥Ü¥¿¥ó¤ò»ÈÍÑÉԲĤˤ¹¤ë
sendmsg tb_hWnd, TB_ENABLEBUTTON, tb_id(TB_LISTVIEW), 0
;¥ê¥¹¥È¥Ó¥å¡¼¹àÌܤκÇÂç¿ô
MaxListNum = lsvcount(hlist, 0)
;
sdim DropFileName, 4*1024
MusicTitle=""
MusicArtist=""
MusicAlbum=""
MusicTime=""
;¶Ê½ü³°¥Õ¥£¥ë¥¿¤òÇÛÎó¤Øʬ²ò
split FileNameFilter, "|", FileNameFilters :FileNameFilters_num = stat
repeat FileNameFilters_num
;¥ï¥¤¥ë¥É¥«¡¼¥É»ÅÍͤˤʤäƤ¤¤Ê¤«¤Ã¤¿¤éË**¤ò¤¹
if instr(FileNameFilters(cnt),0,"*")=-1 && instr(FileNameFilters(cnt),0,"?")=-1 : FileNameFilters(cnt) = "*"+FileNameFilters(cnt)+"*"
loop
;ListViewÅÐÏ¿
repeat DropNum
;¥É¥í¥Ã¥×¥Õ¥¡¥¤¥ë̾ £±¤Ä¼èÆÀ
DragQueryFile hDrop, cnt, varptr(DropFileName), 4*1024
//¥Õ¥¡¥¤¥ë¤«¥Õ¥©¥ë¥À¤«È½ÃǤ·¤Æ¡¢¥Õ¥©¥ë¥À¤Ê¤é²¼ÁؤΥե¡¥¤¥ë¤ò¼è¤ê½Ð¤¹
;¥Õ¥©¥ë¥À¤«³Îǧ
dirlist x, DropFileName, 5
if stat=1 {
;¥Õ¥©¥ë¥À¤À¤Ã¤¿
d_cur=dir_cur
chdir DropFileName+"\\"
;¥Õ¥©¥ë¥À¤Î²¼ÁØ¥Õ¥¡¥¤¥ë¤ò¼èÆÀ
dirlist2h 1,
dirlist2 ssize, "*.*",1
sdim files, ssize
dirlist2r files
chdir d_cur
currentadd=1 ;²¼ÁØ¥Õ¥¡¥¤¥ë¤Î¾ì¹ç¡¢¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê̾¤ò¤¹É¬Íפ¬¤¢¤ë
}else {
;¥Õ¥¡¥¤¥ë¤À¤Ã¤¿
files = DropFileName
currentadd=0
}
// ¥Õ¥¡¥¤¥ë¤ò¥ê¥¹¥È¥Ó¥å¡¼¤ØÅÐÏ¿
notesel files
notemax_=notemax
noteunsel
index=0
repeat notemax_
getstr file, files, index, ,1024 :index+=strsize
if currentadd=1 : file = DropFileName+"\\"+file
;¥Õ¥©¥ë¥À¤«³Îǧ
dirlist x, file, 5
if stat=1 :continue ;¥Õ¥©¥ë¥À¤Ê¤éÃƤ¯
;²»³Ú¥Õ¥¡¥¤¥ë¤«³Îǧ
if instr( MusicFileExts, 0, getpath(file,2+16) ) = -1 :continue ;°ã¤¦¤Ê¤éÃƤ¯
//¶Ê½ü³°¥Õ¥£¥ë¥¿ÀßÄê
if FileNameFilter!"" {
if FileNameFilterRegExpCheck = 0 {
;¥ï¥¤¥ë¥É¥«¡¼¥É¤Ç½ü³°
flg=0
repeat FileNameFilters_num
if PathMatchSpec( getpath(file,8), FileNameFilters(cnt) ) ! 0 :flg=1 :break
loop
if flg=1 :continue
}else {
;Àµµ¬É½¸½¤Ç½ü³°
if match( getpath(file,8), FileNameFilter )!"" :continue
}
}
//¶Ê¥Õ¥¡¥¤¥ë¤«¤é¾ðÊó¤ò¼èÆÀ
GetMusicInfo file, MusicTitle, MusicArtist, MusicAlbum, MusicTime
;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
; ¶Ê¾ðÊ󤫤é¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤ò¤¢¤¤¤Þ¤¤¸¡º÷¡£ ³Î¤«¤é¤·¤µ(¥Ý¥¤¥ó¥È)¤È¥Ç¡¼¥¿¤òÊÖ¤¹¡£
;
; PointInMusicList( ¥Ç¡¼¥¿¥Ù¡¼¥¹À¸¥Ç¡¼¥¿, "¥¿¥¤¥È¥ë<>¥¢¡¼¥Æ¥£¥¹¥È<>¥¢¥ë¥Ð¥à<>ºÆÀ¸»þ´Ö(ÉÃ)" )
; Ìá¤êÃÍ : "¥Ý¥¤¥ó¥È<>KEY<>¥¿¥¤¥È¥ë<>¥¢¡¼¥Æ¥£¥¹¥È<>²Î»ì¥µ¥¤¥È<>¥¿¥¤¥à¥¿¥°FileName<>wikiURL<>¥¢¥ë¥Ð¥à<>ºÇ½ª¹¹¿·Æü»þ<>ºÆÀ¸»þ´Ö(¥ß¥êÉÃ)<>Åê¹Æ¼Ô<>¥³¥á¥ó¥È"
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
PIMLstr = PointInMusicList(rec_dat, MusicTitle+"<>"+MusicArtist+"<>"+MusicAlbum+"<>"+str( ( int(submatch(MusicTime,"^(\\d+):\\d+"))*60+int(submatch(MusicTime,"^\\d+:(\\d+)")) )*1000 ))
//³Æ¾ðÊó¤òÃê½Ð
PIMLpoint = int(match(PIMLstr,"^\\d+")) ;¥Ý¥¤¥ó¥ÈÃê½Ð
PIMLtitle = submatch(PIMLstr,"^.*?<>.*?<>(.*?)<>.*?<>.*?<>.*?<>.*?<>.*?<>.*?<>.*?<>.*?<>.*?$") ;¥¿¥¤¥È¥ëÃê½Ð
PIMLartist= submatch(PIMLstr,"^.*?<>.*?<>.*?<>(.*?)<>.*?<>.*?<>.*?<>.*?<>.*?<>.*?<>.*?<>.*?$") ;¥¢¡¼¥Æ¥£¥¹¥ÈÃê½Ð
PIMLalbum = submatch(PIMLstr,"^.*?<>.*?<>.*?<>.*?<>.*?<>.*?<>.*?<>(.*?)<>.*?<>.*?<>.*?<>.*?$") ;¥¢¥ë¥Ð¥àÃê½Ð
PIMLsite = submatch(PIMLstr,"^.*?<>.*?<>.*?<>.*?<>(.*?)<>.*?<>.*?<>.*?<>.*?<>.*?<>.*?<>.*?$") ;²Î»ì¥µ¥¤¥ÈÃê½Ð
mtime = int(submatch(PIMLstr,"^.*?<>.*?<>.*?<>.*?<>.*?<>.*?<>.*?<>.*?<>.*?<>(.*?)<>.*?<>.*?$")) ;ºÆÀ¸»þ´ÖÃê½Ð
mtimem=mtime/60/1000 :mtimes=mtime/1000-mtimem*60
PIMLtime = strf("%d:%02d",mtimem,mtimes)
//¥ê¥¹¥È¥Ó¥å¡¼¤ØÅÐÏ¿
lsvimadd hlist, str(PIMLpoint), MaxListNum, LIST_POINT ;¥Ý¥¤¥ó¥È
lsvsubadd hlist, getpath(file,32), MaxListNum, LIST_FOLDERNAME ;¥Õ¥©¥ë¥À
lsvsubadd hlist, getpath(file,8), MaxListNum, LIST_FILENAME ;¥Õ¥¡¥¤¥ë
lsvsubadd hlist, MusicTitle, MaxListNum, LIST_TITLE ;¥¿¥¤¥È¥ë(¥Õ¥¡¥¤¥ë)
lsvsubadd hlist, PIMLtitle, MaxListNum, LIST_TITLE_DATA ;¥¿¥¤¥È¥ë(¥Ç¡¼¥¿¥Ù¡¼¥¹)
lsvsubadd hlist, MusicArtist, MaxListNum, LIST_ARTIST ;¥¢¡¼¥Æ¥£¥¹¥È(¥Õ¥¡¥¤¥ë)
lsvsubadd hlist, PIMLartist, MaxListNum, LIST_ARTIST_DATA ;¥¢¡¼¥Æ¥£¥¹¥È(¥Ç¡¼¥¿¥Ù¡¼¥¹)
lsvsubadd hlist, MusicAlbum, MaxListNum, LIST_ALBUM ;¥¢¥ë¥Ð¥à(¥Õ¥¡¥¤¥ë)
lsvsubadd hlist, PIMLalbum, MaxListNum, LIST_ALBUM_DATA ;¥¢¥ë¥Ð¥à(¥Ç¡¼¥¿¥Ù¡¼¥¹)
lsvsubadd hlist, MusicTime, MaxListNum, LIST_TIME ;ºÆÀ¸»þ´Ö(¥Õ¥¡¥¤¥ë)
lsvsubadd hlist, PIMLtime, MaxListNum, LIST_TIME_DATA ;ºÆÀ¸»þ´Ö(¥Ç¡¼¥¿¥Ù¡¼¥¹)
lsvsubadd hlist, PIMLsite, MaxListNum, LIST_LYRICSITE ;²Î»ì¥µ¥¤¥È
lsvsubadd hlist, replace(PIMLstr,"^\\d+<>","",,1), MaxListNum, LIST_DATABASE ;¥Ç¡¼¥¿¥Ù¡¼¥¹À¸¥Ç¡¼¥¿(³ºÅöÎó)
;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
; ´û¤Ë¥¿¥¤¥à¥¿¥°ÉÕ¤²Î»ì¤¬¤¢¤ë¤«³Îǧ ½èÍý
; Ìá¤êÃÍ¡§ 1=¥Õ¥¡¥¤¥ë¤¬¤¢¤ë
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
FileFolder = getpath(file,32) ;¥Õ¥©¥ë¥À̾
FileName = getpath(file,8) ;¥Õ¥¡¥¤¥ë̾
gosub *ExistTimetagFile
; ¡¦¤â¤·¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¤Ê¤é¥Á¥§¥Ã¥¯¤ÏÉÕ¤±¤Ê¤¤
; ¡¦¥Ý¥¤¥ó¥È¤¬¿å½à°Ê¾å¤Ê¤é¥Á¥§¥Ã¥¯¤òÉÕ¤±¤ë
lsvsetcheck hlist, MaxListNum, (PIMLpoint >= Option_CheckerPoint) *(stat!=1)
;¥ê¥¹¥È¥Ó¥å¡¼Áí¿ô¤Ë+1
MaxListNum++
wait 1
loop
loop
DragFinish hDrop ;³«Êü
//¥Ä¡¼¥ë¥Ð¡¼¤Î¥Ü¥¿¥ó¤ò»ÈÍѲÄǽ¤Ë¤¹¤ë
sendmsg tb_hWnd, TB_ENABLEBUTTON, tb_id(TB_LISTVIEW), 1
return
;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
; ¥ê¥¹¥È¥Ó¥å¡¼¡§¡Ö¼Â¹Ô¡×
;
; ¥¿¥¤¥à¥¿¥°ÉÕ¤²Î»ì¼èÆÀ ½èÍý
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
*GetTimetagLyrics
//LyricsMaster¤Î¥Ñ¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«³Îǧ¤¹¤ë
dirlist x, LyricsMasterPass, 5
if stat = 0 {
dialog "Lyrics Master¤Î¤¢¤ë¥Õ¥©¥ë¥À¤òÅÐÏ¿¤·¤Æ²¼¤µ¤¤"
gi_sel = ginfo_sel
;ÀßÄꥦ¥£¥ó¥É¥¦³«¤¯
gsel WindowID_Setting, 1
gsel gi_sel
return
}
;//LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É(Ϣ³¼èÆÀ¤ËºÇŬ²½)
preferences_lyricsmaster = LoadLMpreferences(1)
if preferences_lyricsmaster="" : dialog "Lyrics Master¤ò°ìÅÙµ¯Æ°¤·¤Æ»ÈÍѵ¬Ìó¤ËƱ°Õ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹",1 :return
//LyricsMaster¤Ç¸¡º÷Ãæ¡¢¤É¤Î¥µ¥¤¥È¤«¤é²Î»ì¤ò½¦¤¨¤ÐÎɤ¤¤«¤òÌÀ¼¨¤¹¤ëÁë¤òɽ¼¨
gi_sel=ginfo_sel
gsel WindowID_ShowSite, 2
gsel gi_sel
//¥Ä¡¼¥ë¥Ð¡¼¤Î¥Ü¥¿¥ó¤ò»ÈÍѲÄǽ¤Ë¤¹¤ë
sendmsg tb_hWnd, TB_ENABLEBUTTON, tb_id(TB_NEXT), 1
sendmsg tb_hWnd, TB_ENABLEBUTTON, tb_id(TB_STOP), 1
;¥ê¥¹¥È¥Ó¥å¡¼¹àÌܤκÇÂç¿ô
MaxListNum = lsvcount(hlist, 0)
;Á´¥ê¥¹¥È ½èÍý¼Â¹Ô
repeat MaxListNum
;¥Á¥§¥Ã¥¯¾õÂÖ³Îǧ
if lsvgetcheck(hlist, cnt)=1 {
;½èÍý¹ÔÁªÂòɽ¼¨
itemcheck = lsvgetcheck(hlist, cnt)
lsvimsel hlist, cnt ;¹ÔÁªÂò
;¤Ê¤ó¤«lsvimsel¤Ç¹Ô¤òÁªÂò¤·¤¿¤é¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤¬¸«¤¨¤Ê¤¯¤Ê¤ë¤Î¤Ç¸«¤¨¤ë¤è¤¦¤Ë¤¹¤ë
lsvsetcheck hlist, cnt, itemcheck
;²Î»ì¤òÆþ¤ì¤ëÊÑ¿ô¡£È¾Ê¬¥Õ¥é¥°Âå¤ï¤ê¤Ë¤â»ÈÍÑ¡£
lyrics=""
;¥ê¥¹¥È¥Ó¥å¡¼¤«¤é²Î»ì¥µ¥¤¥È¼èÆÀ
lsvgetstr PIMLsite, hlist, cnt, LIST_LYRICSITE
//URL¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¾ì¹ç
if instr(PIMLsite, 0, "/http://")!-1 {
;URLÈ´¤½Ð¤·
PIMLsiteURL = submatch(PIMLSite, "/(http://.*)$")
;//ǧ¼±¤Ç¤¤ë²Î»ì¥µ¥¤¥È¤«³Îǧ
if instr(PIMLsiteURL, 0, "http://www5.atwiki.jp/hmiku/")!-1 {
//½é²»¥ß¥¯Wiki¤Ç¤¢¤ë
lyrics = GetLyrics( PIMLsiteURL, LUA_hmiku ) ;²Î»ì¤ò¼èÆÀ
}else : if instr(PIMLsiteURL,0, "http://www31.atwiki.jp/touhoukashi/")!-1 {
;ÅìÊýƱ¿ÍCD¤Î²Î»ì@Wiki¤Ç¤¢¤ë
lyrics = GetLyrics( PIMLsiteURL, LUA_touhoukashi ) ;²Î»ì¤ò¼èÆÀ
}
}
//URL¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤=LyricsMaster¤Ç²Î»ì¤ò¼èÆÀ¤¹¤ë
if lyrics="" {
// LyricsMaster¤Ç²Î»ì¤ò¼èÆÀ¤¹¤ë
;¥ê¥¹¥È¥Ó¥å¡¼¤«¤é¥¿¥¤¥È¥ë¼èÆÀ
lsvgetstr PIMLtitle, hlist, cnt, LIST_TITLE_DATA
;¥ê¥¹¥È¥Ó¥å¡¼¤«¤é¥¢¡¼¥Æ¥£¥¹¥È¼èÆÀ
lsvgetstr PIMLartist, hlist, cnt, LIST_ARTIST_DATA
;PIMLsite¤«¤é²Î»ì¥µ¥¤¥È̾¤Î¤ß¤òÃê½Ð¡Ê¤â¤·URL¤¬¤Ä¤¤¤Æ¤¤¤ì¤Ð³°¤¹¡Ë
PIMLsiteName = replace( PIMLsite, "/http://.*$", "" )
//LyricsMaster¤ÎÀßÄê¤ò¾å½ñ¤¤¹¤ë
;¸¡º÷¤¹¤ë²Î»ì¥µ¥¤¥È¤ò»ØÄê
preferences_lyricsmaster_temp = ReplaceSearchSiteLMpreferences( preferences_lyricsmaster, PIMLsiteName )
;ÀßÄê¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤Êݸ¤¹¤ë
SaveLMpreferences preferences_lyricsmaster_temp
;//LyricsMasterµ¯Æ°
exec dirinfo(3)+"\\wscript.exe \""+LyricsMasterPass+"\\ExtSupport.js\" multi \""+PIMLtitle+"\" \""+PIMLartist+"\""
;¤É¤Î²Î»ì¥µ¥¤¥È¤«¤é¼èÆÀ¤¹¤ì¤ÐÎɤ¤¤«ÌÀ¼¨Áë¤Ëɽ¼¨
mes_ShowSiteWindow "("+(cnt+1)+"/"+MaxListNum+") "+PIMLtitle+"\n"+"¼èÆÀ²Î»ì¥µ¥¤¥È¡§ "+PIMLsite
;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
; LyricsMasterµ¯Æ°¸å¡¢²Î»ì¼èÆÀ´Æ»ë ½èÍý¡Ê¸¡½Ð¤¹¤ë¤Þ¤Ç½Ð¤Æ¤³¤Ê¤¤¡Ë
; ¤Á¤ã¤ó¤È¼èÆÀ¤Ç¤¤¿ ¢ª lyrics¤Ë²Î»ì¤¬Æþ¤ë
; ¡Ö¼¡¤Ø¡×¹Ô¤¯¤¿¤áÌá¤Ã¤Æ¤¤¿ ¢ª lyrics=""
; ¡ÖÃæ»ß¡× ¢ª lyrics="<Ãæ»ß>"
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
gosub *LyricsMasterCheck
//
if lyrics="<Ãæ»ß>" :break ;¥¿¥¤¥à¥¿¥°ÉÕ¤²Î»ì¼èÆÀ½èÍý¤òÃæ»ß¤¹¤ë
//
}
//URL¤Þ¤¿¤ÏLyricsMaster¤«¤é²Î»ì¤ò¼èÆÀ¤·¤¿¡£¢ª¥¿¥¤¥à¥¿¥°ÉÕ¤²Î»ì¤òÀ¸À®¤·¤ÆÊݸ¤¹¤ë
if lyrics ! "" {
;¥¿¥¤¥à¥¿¥°¾ðÊó¥Õ¥¡¥¤¥ë̾¤ò¼èÆÀ
lsvgetstr PIMLstr, hlist, cnt, LIST_DATABASE
PIMLtagfile = submatch(PIMLstr,"^.*?<>.*?<>.*?<>.*?<>(.*?)<>.*?<>.*?<>.*?<>.*?<>.*?<>.*?$") ;¥¿¥¤¥à¥¿¥°¾ðÊó¥Õ¥¡¥¤¥ë̾Ãê½Ð
;//ľÀÜ¥¿¥¤¥à¥¿¥°¾ðÊó¥Æ¥¥¹¥È¤ò¼èÆÀ¤Ë¹Ô¤¯
timetagdata = GetHTMLSource( "http://timetag.main.jp/herodb/timetag/bin/"+PIMLtagfile,,1 )
;//¥¿¥¤¥à¥¿¥°ÉÕ¤²Î»ì À¸À®
TimetagLyrics = ApplyTimetagData( lyrics, timetagdata )
;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
; ¥¿¥¤¥à¥¿¥°ÉÕ¤²Î»ì ¥Õ¥¡¥¤¥ëÊݸ ½èÍý
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
lsvgetstr FileFolder, hlist, cnt, LIST_FOLDERNAME ;¥Õ¥©¥ë¥À¼èÆÀ
lsvgetstr FileName, hlist, cnt, LIST_FILENAME ;¥Õ¥¡¥¤¥ë̾¼èÆÀ
gosub *TimetagFileSave
;¥¿¥¤¥à¥¿¥°ÉÕ¤²Î»ì¤òÊݸ¤Ç¤¤¿¤é¥Á¥§¥Ã¥¯¤ò³°¤¹
lsvsetcheck hlist, cnt, 0
}
}
wait 1
loop
//LyricsMaster¤Ç¸¡º÷Ãæ¡¢¤É¤Î¥µ¥¤¥È¤«¤é²Î»ì¤ò½¦¤¨¤ÐÎɤ¤¤«¤òÌÀ¼¨¤¹¤ëÁë¤òÈóɽ¼¨
gi_sel=ginfo_sel
gsel WindowID_ShowSite, -1
//¥á¥¤¥ó¥¦¥£¥ó¥É¥¦¤òÁ´Ì̤Ëɽ¼¨
gsel WindowID_Main, 2
gsel WindowID_Main, 1
gsel gi_sel
//¥Ä¡¼¥ë¥Ð¡¼¤Î¥Ü¥¿¥ó¤ò»ÈÍÑÉԲĤˤ¹¤ë
sendmsg tb_hWnd, TB_ENABLEBUTTON, tb_id(TB_NEXT), 0
sendmsg tb_hWnd, TB_ENABLEBUTTON, tb_id(TB_STOP), 0
;//LyricsMaster¤ÎÀßÄê¤ò¡Ö¼Â¹Ô¡×¤ÎºÇ½é¤Ë¥í¡¼¥É¤·¤¿¾õÂÖ¤ËÌ᤹
SaveLMpreferences_LastLoad
return
;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
; LyricsMaster¡§µ¯Æ°¸å
;
; ²Î»ì¼èÆÀ´Æ»ë ½èÍý
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
*LyricsMasterCheck
LyricsMasterStep=0 ;¥¹¥Æ¥Ã¥×¥Õ¥é¥°
repeat
//¥¹¥Æ¥Ã¥×0 µ¯Æ°¤ò³Îǧ¡£¥¦¥£¥ó¥É¥¦¥Ï¥ó¥É¥ë¤ò¼èÆÀ¤¹¤ë¡£
if LyricsMasterStep = 0 {
;µ¯Æ°³Îǧ
FindWindow "RBWindow","Lyrics Master"
if stat!0 {
LyricsMaster_hWnd = stat ;LyricsMaster¤Î¥¦¥£¥ó¥É¥¦¥Ï¥ó¥É¥ë
LyricsMasterStep = 1
}
}
//¥¹¥Æ¥Ã¥×1 ¥á¥¤¥ó¥¦¥£¥ó¥É¥¦¤Î¥¨¥Ç¥£¥Ã¥È¥Ü¥Ã¥¯¥¹¤ò´Æ»ë¡£²Î»ì¤¬É½¼¨¤µ¤ì¤¿¤é¼èÆÀ¤¹¤ë¡£
if LyricsMasterStep = 1 {
;³«¤¤¤Æ¤¤¤ë¤Î¤ò³Îǧ¤·¤¿¤¬°ìÅÙÊĤ¸¤¿¾ì¹ç¤Ï¥¥ã¥ó¥»¥ë¡£¼¡¤Î¹àÌܤعԤ¯¡£
IsWindow LyricsMaster_hWnd : if stat=0 :break
;LyricsMaster¤Î¥ê¥Ã¥Á¥¨¥Ç¥£¥Ã¥È¤ÎÃæ¿È¤ò¼èÆÀ
RitchEditStr = GetEdit_LyricsMster(LyricsMaster_hWnd)
if RitchEditStr!"" {
;¥ê¥Ã¥Á¥¨¥Ç¥£¥Ã¥Èʸ»úÎ󤫤饿¥¤¥È¥ë¤ä¥¢¡¼¥Æ¥£¥¹¥È¤òÃê½Ð¡¢È´¤¼è¤ê¡¢²Î»ì¥µ¥¤¥È¿äÄê
LMstringDivide RitchEditStr, "", LM_title, LM_artist, LM_website, 2/*LyricsMasterVersion*/
if stat=1 {
if replace(PIMLsite,"/http://.*$","") ! LM_website {
;¸¡º÷Ãæ¤Î²Î»ì¥µ¥¤¥È¤È¼èÆÀ¤·¤¿²Î»ì¥µ¥¤¥È¤¬°Û¤Ê¤ë¾ì¹ç¡¢³Îǧ¤¹¤ë¡£
//¥á¥¤¥ó¥¦¥£¥ó¥É¥¦¤òÁ´Ì̤Ëɽ¼¨
gi_sel=ginfo_sel
gsel WindowID_Main, 2
dialog "¼èÆÀÀè¤Î²Î»ì¥µ¥¤¥È¤¬°Û¤Ê¤ë¤è¤¦¤Ç¤¹¤¬Â³¹Ô¤·¤Þ¤¹¤«¡©\n\nLyricsMaster¡§ "+LM_website,2
gsel WindowID_Main, 1
gsel gi_sel
if stat = 7 {
;¤¤¤¤¤¨
SetEdit_LyricsMster LyricsMaster_hWnd, "" ;LyricsMaster¤Î¥¨¥Ç¥£¥Ã¥È¥Ü¥Ã¥¯¥¹¤ò¶õÍó¤Ë¤¹¤ë
continue
}
}
lyrics = RitchEditStr
SetEdit_LyricsMster LyricsMaster_hWnd, "" ;LyricsMaster¤Î¥¨¥Ç¥£¥Ã¥È¥Ü¥Ã¥¯¥¹¤ò¶õÍó¤Ë¤¹¤ë
;²Î»ì¼èÆÀ½èÍý¤«¤éæ½Ð¥¹¥Æ¥Ã¥×
LyricsMasterStep = -1
}
}
}
//¥¹¥Æ¥Ã¥×-1 ²Î»ì¼èÆÀ½èÍý¤«¤éæ½Ð
if LyricsMasterStep = -1 {
;+¥Ä¡¼¥ë¥Ð¡¼¤«¤é¡Ö¼¡¤Ø¡×¥³¥Þ¥ó¥É
//LyricsMaster¤¬µ¯Æ°¤·¤Æ¤¤¤¿¤éÊĤ¸¤ë
;µ¯Æ°¤·¤Æ¤¤¤Ê¤«¤Ã¤¿¤éæ½Ð
FindWindow "RBWindow","Lyrics Master"
if stat != 0 {
;µ¯Æ°¤ò³Îǧ¡¢ÊĤ¸¤ë
sendmsg stat, WM_CLOSE, 0,0
}else {
break
}
}
if LyricsMasterStep = -2 {
;¥Ä¡¼¥ë¥Ð¡¼¤«¤é¡ÖÃæ»ß¡×¥³¥Þ¥ó¥É
lyrics = "<̾ȧ>"
break
}
wait 150 ;1.5É䴤Ȥ˳Îǧ¤¹¤ë¡£
loop
;//LyricsMaster¤òÊĤ¸¤ë
LyricsMasterStep=0 ;¥¹¥Æ¥Ã¥×¥Õ¥é¥°
return
;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
; ¥Õ¥¡¥¤¥ëÁàºî¡§Êݸ
;
; ¥¿¥¤¥à¥¿¥°ÉÕ¤²Î»ìÊݸ ½èÍý
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
*TimetagFileSave
//²Î»ì¤òÊݸ
//¤â¤·ÀßÄê¤ÇÊݸÀè¤ËÀäÂХѥ¹¤ò»ØÄꤷ¤Æ¤¤¤ÆÊݸ¥Õ¥©¥ë¥À¤¬¤Þ¤Àºî¤é¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¤ä¤ä¤³¤·¤¤¤Î¤ÇÀè¤Ëºî¤ë
;ÀäÂХѥ¹¤«³Îǧ
if match( FileSavePos, "^\\w\\:\\\\" )!""{
//¥Õ¥©¥ë¥À¤ò³Îǧ
dirlist x, FileSavePos, 5 ;¥Ç¥£¥ì¥¯¥È¥ê³Îǧ
if stat=0 {
;¥Õ¥©¥ë¥À¤¬¤Ê¤¤¾ì¹çºî¤ë
MakeSureDirectoryPathExists FileSavePos+"\\" ;¥Õ¥©¥ë¥ÀºîÀ®(¿¼³¬ÁØOK)
}
}
;//Êݸ¾ì½ê
if FileSavePos = "" {
;¶Ê¤ÈƱ¤¸¥Õ¥©¥ë¥À
TimetagFileName = FileFolder + getpath(FileName,1) + FileSaveExt
}else {
;¥Õ¥©¥ë¥À(ÀäÂХѥ¹)¤«³Îǧ
dirlist x, FileSavePos, 5
if stat=1 {
;ÀäÂХѥ¹
TimetagFileName = FileSavePos + "\\" + getpath(FileName,1) + FileSaveExt
}else {
;¶Ê¤Î²¼ÁØ¥Õ¥©¥ë¥À
TimetagFileName = FileFolder + FileSavePos + "\\" +getpath(FileName,1) + FileSaveExt
}
}
//¥¿¥¤¥à¥¿¥°ÉÕ¤²Î»ì¤òÊݸ
notesel TimetagLyrics
notesave TimetagFileName
noteunsel
return
;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
; ¥Õ¥¡¥¤¥ëÁàºî¡§³Îǧ
;
; ´û¤Ë¥¿¥¤¥à¥¿¥°ÉÕ¤²Î»ì¤¬¤¢¤ë¤«³Îǧ ½èÍý
; Ìá¤êÃÍ¡§ 1=¥Õ¥¡¥¤¥ë¤¬¤¢¤ë
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
*ExistTimetagFile
;//Êݸ¾ì½ê
if FileSavePos = "" {
;¶Ê¤ÈƱ¤¸¥Õ¥©¥ë¥À
TimetagFileName = FileFolder + getpath(FileName,1) + FileSaveExt
}else {
;¥Õ¥©¥ë¥À(ÀäÂХѥ¹)¤«³Îǧ
dirlist x, FileSavePos, 5
if stat=1 {
;ÀäÂХѥ¹
TimetagFileName = FileSavePos + "\\" + getpath(FileName,1) + FileSaveExt
}else {
;¶Ê¤Î²¼ÁØ¥Õ¥©¥ë¥À
TimetagFileName = FileFolder + FileSavePos + "\\" +getpath(FileName,1) + FileSaveExt
}
}
exist TimetagFileName
if strsize!-1 {
return 1
}
return 0
;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±
; ¥ê¥¹¥È¥Ó¥å¡¼¡§¡Ö¥Á¥§¥Ã¥¯¤·¤Æ¤Ê¤¤¹àÌܤòºï½ü¡×
;
; ¥Á¥§¥Ã¥¯¤·¤Æ¤Ê¤¤¹àÌܤòºï½ü ½èÍý
;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²
*NOCHECKDEL
;¥ê¥¹¥È¥Ó¥å¡¼¹àÌܤκÇÂç¿ô
MaxListNum = lsvcount(hlist, 0)
;Á´¥ê¥¹¥È³Îǧ
repeat MaxListNum, 1
;¥Á¥§¥Ã¥¯¾õÂÖ³Îǧ
if lsvgetcheck(hlist, MaxListNum-cnt)=0 {
lsvimdel hlist, MaxListNum-cnt
}
loop
return