;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡² ;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡± ; Modules.hsp ; ; ¡¦¥Ç¡¼¥¿¥Ù¡¼¥¹¤¢¤¤¤Þ¤¤¸¡º÷¡¢ÅÀ¿ôÉÕ¤±¥â¥¸¥å¡¼¥ë ; ¡¦HTML¥½¡¼¥¹¼èÆÀ¥â¥¸¥å¡¼¥ë ; ¡¦²þ¹Ô¥³¡¼¥ÉCRLFÅý°ì¥â¥¸¥å¡¼¥ë ; ¡¦¶Ê¥Õ¥¡¥¤¥ë¤«¤é¾ðÊó¼èÆÀ¥â¥¸¥å¡¼¥ë ; ¡¦²Î»ìURL¤«¤é²Î»ì¤òÃê½Ð¤¹¤ë¥â¥¸¥å¡¼¥ë ; ¡¦LyricsMaster¤Î¥Æ¥¥¹¥È¤ò¼èÆÀ¡¦ÀßÄꡦ²òÀÏ ¥â¥¸¥å¡¼¥ë ; ¡¦¥¿¥¤¥à¥¿¥°ÉÕ¤²Î»ìÀ¸À® ¥â¥¸¥å¡¼¥ë ; ¡¦¥Ä¡¼¥ë¥Á¥Ã¥× ¥â¥¸¥å¡¼¥ë ;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡² ;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡± ;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡± ; ¥Ç¡¼¥¿¥Ù¡¼¥¹¤¢¤¤¤Þ¤¤¸¡º÷¡¢ÅÀ¿ôÉÕ¤±¥â¥¸¥å¡¼¥ë ; ; lua-xl.hsp »ÈÍÑ ;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡² #module TimetagDataBaseSearch ;******************************************************************************* ; ÅÀ¿ô¤ò¤Ä¤±¤ëºÝ¤Î³Æ¹àÌܤνŤßÉÕ¤±¤òÀßÄꤹ¤ë ; ; PointInMusicList_option_set p1, p2, p3, p4 ; ; p1=¿ôÃÍ : ¥¿¥¤¥È¥ë¤Î½Å¤ß[0¡Á100] ; p2=¿ôÃÍ : ¥¢¡¼¥Æ¥£¥¹¥È¤Î½Å¤ß[0¡Á100] ; p3=¿ôÃÍ : ¥¢¥ë¥Ð¥à¤Î½Å¤ß[0¡Á100] ; p4=¿ôÃÍ : ºÆÀ¸»þ´Ö¤Î½Å¤ß[0¡Á100] ; ;******************************************************************************* #deffunc PointInMusicList_option_set int p1, int p2, int p3, int p4 Option_WeightTitle=p1 Option_WeightArtsit=p2 Option_WeightAlbum=p3 Option_WeightTime=p4 return ;******************************************************************************* ; ¶Ê¾ðÊ󤫤é¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤ò¤¢¤¤¤Þ¤¤¸¡º÷¡£ ³Î¤«¤é¤·¤µ(¥Ý¥¤¥ó¥È)¤È¥Ç¡¼¥¿¤òÊÖ¤¹¡£ ; ; PointInMusicList( p1, p2) ; ; p1=ÊÑ¿ô : ¥Ç¡¼¥¿¥Ù¡¼¥¹À¸¥Ç¡¼¥¿ ; p2=ʸ»úÎó : "¥¿¥¤¥È¥ë<>¥¢¡¼¥Æ¥£¥¹¥È<>¥¢¥ë¥Ð¥à<>ºÆÀ¸»þ´Ö(ÉÃ)" ; ; Ìá¤êÃÍ : "¥Ý¥¤¥ó¥È<>KEY<>¥¿¥¤¥È¥ë<>¥¢¡¼¥Æ¥£¥¹¥È<>²Î»ì¥µ¥¤¥È<>¥¿¥¤¥à¥¿¥°FileName<>wikiURL<>¥¢¥ë¥Ð¥à<>ºÇ½ª¹¹¿·Æü»þ<>ºÆÀ¸»þ´Ö(¥ß¥êÉÃ)<>Åê¹Æ¼Ô<>¥³¥á¥ó¥È" ; ;******************************************************************************* #defcfunc PointInMusicList var lists, str _tester // HSP¤Ç¤Ï®ÅÙ¤¬½Ð¤Ê¤«¤Ã¤¿¤Î¤ÇLUA¤ËÅꤲ¤ë¡£¢«¤½¤ì¤Ç¤â¿ô»«¤¯¤Î¤Ï»þ´Ö¤¬¤«¤«¤ë(- -¡¨ _lm_LuaScript = {" function PointInMusicList(lists,tester,weight) -- test_TAAT=split_as_cgidata(tester) test_titles_num, test_titles = arraysplit(test_TAAT[1]) test_artists_num, test_artists = arraysplit(test_TAAT[2]) test_albums_num, test_albums = arraysplit(test_TAAT[3]) test_titles_strlen = string.len(test_TAAT[1]) test_artists_strlen = string.len(test_TAAT[2]) test_albums_strlen = string.len(test_TAAT[3]) if test_TAAT[4]=="0" then test_TAAT[4]="" end local list_point=0 local max_list_point=0 local max_list_point_list="" for list_key, list_title, list_artist, list_lyricsite, list_tagdata, list_wikipage, list_album, list_update, list_time, list_tagging, list_comment in string.gmatch(lists, "(%d-)<>(.-)<>(.-)<>(.-)<>(.-)<>(.-)<>(.-)<>(.-)<>(.-)<>(.-)<>(.-)<>.-<><><><>") do title_point = PointTester( list_title, test_titles, test_titles_num, test_titles_strlen) artist_point = PointTester( list_artist, test_artists, test_artists_num, test_artists_strlen) album_point = PointTester( list_album, test_albums, test_albums_num, test_albums_strlen) time_point = PointTesterTime( list_time, test_TAAT[4]) max_total_point=0 total_point=0 --ÅÀ¿ô¤Ë½Å¤ßÉÕ¤± if title_point = -1 then --¥¿¥¤¥È¥ë max_total_point = max_total_point + weight.title total_point = total_point + title_point*weight.title/100 end if artist_point = -1 then --¥¢¡¼¥Æ¥£¥¹¥È max_total_point = max_total_point + weight.artist total_point = total_point + artist_point*weight.artist/100 end if album_point = -1 then --¥¢¥ë¥Ð¥à max_total_point =max_total_point + weight.album total_point = total_point + album_point*weight.album/100 end if time_point = -1 then --ºÆÀ¸»þ´Ö max_total_point = max_total_point + weight.time total_point = total_point + time_point*weight.time/100 end --¤¹¤Ù¤Æ¤Î¥È¡¼¥¿¥ëÅÀ¿ô»»½Ð list_point = total_point*100/max_total_point if max_list_point < list_point then --ºÇÂçÃͤΤȤ¤Î¥Ç¡¼¥¿¤òµÏ¿¤·¤Æ¤ª¤¯ max_list_point = list_point max_list_point_list = list_key.."<>"..list_title.."<>"..list_artist.."<>"..list_lyricsite.."<>"..list_tagdata.."<>"..list_wikipage.."<>"..list_album.."<>"..list_update.."<>"..list_time.."<>"..list_tagging.."<>"..list_comment end end return "" .. math.floor(max_list_point) .. "<>" .. max_list_point_list end function arraysplit(test) if test=="" then return 0,"" end local count=1 local index=1 local tests={} local wbyte=0 repeat if (129<=string.byte(test,index) and string.byte(test,index)<=159) or (224<=string.byte(test,index) and string.byte(test,index)<=252) then wbyte=1 else wbyte=0 end tests[count] = string.sub(test,index,index+wbyte) index = index + 1+wbyte count = count + 1 until index>string.len(test) return count-1, tests end function PointTester(_plist, ptest, num, strlen_ptest) if num==0 or string.len(_plist)==0 then return -1 end local plist="#$%".._plist.."=|" local pt_maxpoint=0 local pt_point=0 local matcher="" for i=1, num do pt_maxpoint = pt_maxpoint + 3 --3point 123 matcher="" if i == 1 then matcher= matcher .. "#$%" else matcher = matcher .. ptest[i-1] end matcher = matcher .. ptest[i] if i == num then matcher = matcher .. "=|" else matcher = matcher .. ptest[i+1] end --print(matcher) if string.find(plist,matcher,1,1) = nil then pt_point = pt_point+3 else --2point 12 matcher="" if i==1 then matcher = matcher .. "#$%" else matcher = matcher .. ptest[i-1] end matcher = matcher .. ptest[i] if string.find(plist,matcher,1,1) = "" then pt_point = pt_point+2 else --2point 23 matcher="" matcher = matcher .. ptest[i] if i==num then matcher = matcher .. "=|" else matcher = mather .. ptest[i+1] end if string.find(plist,matcher,1,1) = nil then pt_point = pt_point+2 else --1point 2 matcher=ptest[i] if string.find(plist,matcher,1,1) = nil then pt_point = pt_point+1 end end end end end local hstrlen_list = string.len(_plist)/2 local hstrlen_ptest = strlen_ptest/2 if hstrlen_list >= hstrlen_ptest then pt_maxpoint = pt_maxpoint + hstrlen_list pt_point = pt_point + hstrlen_ptest else pt_maxpoint = pt_maxpoint + hstrlen_ptest pt_point = pt_point + hstrlen_list end return pt_point*100/pt_maxpoint end function PointTesterTime( p1, p2 ) if p1=="" or p2=="" or p2=="0" then return -1 end local pt = 100 - ( math.abs( math.floor(p1/1000) - p2/1000 )) --»þ´Ö¤Îº¹¤ò¼è¤Ã¤Æ¥ß¥êÉÃñ°Ì¤ò1ÉÃñ°Ì¤Ë¤·¤Æ¥º¥ì¤Æ¤Ê¤µ¤ò¥Ý¥¤¥ó¥È¤Ë¤¹¤ë if pt < 0 then pt = 0 --100Éðʾ庹¤¬¤¢¤ë¤È¥Þ¥¤¥Ê¥¹¤Ë¤Ê¤Ã¤Æ¤ë¤«¤é0ÅÀ¤Ë¤¹¤ë end return pt end function split_as_cgidata(line) local result= {} for e in string.gmatch(line.."<>" , "([^<>]*)<>" ) do table.insert(result,e) end return result end "} luaL_newstate // Lua½é´ü²½ L = stat luaL_openlibs L //Lua¥¹¥¯¥ê¥×¥ÈÆɤ߹þ¤ß luaL_loadstring L, _lm_LuaScript //¶õ¼Â¹Ô¤·¤Æ´Ø¿ô¤òǧ¼±¤µ¤»¤ë(?) lua_pcall L, 0, 0, 0 if stat!0 { lua_close L // Lua³«Êü dialog "lua_pcall()=="+stat+"\nLua¥¹¥¯¥ê¥×¥È¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿(1)",1,"²Î»ì¸¡º÷" return } //LyricsInfoGet´Ø¿ô¤ò¥¹¥¿¥Ã¥¯¤ËÀѤà lua_getfield L, LUA_GLOBALSINDEX, "PointInMusicList" //°ú¿ô¤ò¥¹¥¿¥Ã¥¯¤ËÀѤà lua_pushstring L, lists lua_pushstring L, _tester ;¥Æ¡¼¥Ö¥ë lua_newtable L lua_pushstring L, ""+Option_WeightTitle ;value lua_setfield L, -2, "title"; ;key lua_pushstring L, ""+Option_WeightArtsit ;value lua_setfield L, -2, "artist"; ;key lua_pushstring L, ""+Option_WeightAlbum ;value lua_setfield L, -2, "album"; ;key lua_pushstring L, ""+Option_WeightTime ;value lua_setfield L, -2, "time"; ;key //¥¹¥¿¥Ã¥¯ºÇ²¼Áؤò»ØÄꤷ¤Æ´Ø¿ô¤ò¼Â¹Ô lua_pcall L, 3, LUA_MULTRET, 0 if stat!0 { lua_close L // Lua³«Êü dialog "lua_pcall()=="+stat+"\nLua¥¹¥¯¥ê¥×¥È¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿(2)",1,"²Î»ì¸¡º÷" return } //¥¹¥¿¥Ã¥¯¤ÎÍ×ÁÇ¿ô(Ìá¤êÃͤοô)¤ò¼èÆÀ lua_gettop L //Í×ÁǤβó¿ô·«¤êÊÖ¤·¤Æ¥¹¥¿¥Ã¥¯¤òÁ´ÉôÆɤ߼è¤ê½ü¤¯ //°ú¿ô¤ò¼èÆÀ lua_tostring L, -1 //¥Ý¥¤¥ó¥¿Àè¤Îʸ»úÎó¤òʸ»úÎóÊÑ¿ô¤Çɽ¤»¤ë¤è¤¦¤Ë¤¹¤ë(¥¯¥í¡¼¥óÊÑ¿ô) dupptr luarefstr,stat,1,2 //Í×ÁǤΥ¹¥¿¥Ã¥¯°ÌÃ֤ǼïÎà¤òÆÃÄê temporary = luarefstr lua_pop L,1 lua_close L // Lua³«Êü return temporary #global ;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡± ; HTML¥½¡¼¥¹¼èÆÀ¥â¥¸¥å¡¼¥ë ; ; comobj47.hsp (HSP-NEXT ¤µ¤¯¤éÍͺî) ¤ò²þ¤¡¢¥â¥¸¥å¡¼¥ë²½ ; ²þ¹Ô¥³¡¼¥ÉÃÖ´¹¥â¥¸¥å¡¼¥ë(toCRLF)»ÈÍÑ ;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡² ;***** URL¤ò»ØÄꤷ¤Æhtml¥Æ¥¥¹¥È¤ò¼èÆÀ (comobj47.hsp) ***** #define adTypeBinary 1 #define adSaveCreateNotExist 1 #define adSaveCreateOverWrite 2 #define global Char_Auto -1 #enum global Char_SJIS = 0 #enum global Char_UTF8 #enum global Char_EUC #module GetHTML ;******************************************************************************* ; URL¤ò»ØÄꤷ¤Æhtml¥Æ¥¥¹¥È¤ò¼èÆÀ ; ; GetHTMLSource( p1 [,p2 [,p3] ] ) ; ; p1=ʸ»úÎó : URL ; p2=¿ôÃÍ : ¼èÆÀÀè¤Îʸ»ú¥³¡¼¥ÉID (-1) ; -1 = Char_Auto ; 0 = Char_SJIS ; 1 = Char_UTF8 ; 2 = Char_EUC ; p3=¿ôÃÍ : toCRLFÌ¿Îá¤Ç²þ¹Ô¥³¡¼¥É¤òCRLF¤ËÅý°ì (0) ; 1 = ¼Â¹Ô ; ; Ìá¤êÃÍ : ¼èÆÀHTML¥½¡¼¥¹ ; ;******************************************************************************* #define global ctype GetHTMLSource(%1,%2=-1,%3=0) _GetHTMLSource(%1,%2,%3) #defcfunc _GetHTMLSource str _sURL, int CharSetCode, int crlf_flg ReturnHTML="" ;¢§URL¤ò»ØÄê sURL = _sURL ;sURL = "http://www.google.com/search?hl=ja&q=%E6%AD%8C%E8%A9%9E+site:http://zyouge444.blog81.fc2.com/&btnG=%E6%A4%9C%E7%B4%A2&aq=f&aqi=&aql=&oq=" ;¢§¥»¡¼¥Ö¤¹¤ë¾ì¹ç¤ÎHTML̾ (Ǥ°Õ) ;sDest = dirinfo(0)+"\\dsthtml.htm" ;¢§CharCode¤ò»ØÄê switch CharSetCode case Char_SJIS charcode = "Shift_JIS" swbreak case Char_UTF8 charcode = "UTF-8" swbreak case Char_EUC charcode = "EUC-JP" swbreak default charcode = "Shift_JIS" swend ;title sURL newcom objXMLHTTP, "Microsoft.XMLHTTP" objXMLHTTP->"Open" "GET", sURL, 0 objXMLHTTP->"Send" ;¢§status OK¤Ê¤éHTML¥Æ¥¥¹¥È¥Õ¥¡¥¤¥ë¤ò»ØÄê¤ÎCharCode¤Ç¼èÆÀ if objXMLHTTP("status") = 200 { newcom objRS,"ADODB.Stream" if stat!0 : dialog "ADODB.Stream¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£",0 : return "" objRS("Type") = 1 objRS->"Open" sHtml=objXMLHTTP("ResponseBody") objRS->"Write" sHtml objRS("Position") = 0 objRS("Type") = 2 objRS("Charset") = charcode ReturnHTML=objRS("ReadText") if CharSetCode=Char_Auto { charset=match(ReturnHTML,"<meta.*charset\\s*=.*?>") charset=replace(charset,"^.*charset\\s*=(.*)$","$1") charcode = "UTF-8" charset=getpath(charset,16) if instr(charset,0,"utf-8")!-1{ charcode = "UTF-8" }else :if instr(charset,0,"euc")!-1{ charcode = "EUC-JP" }else :if instr(charset,0,"shift_jis")!-1{ charcode = "Shift_JIS" } objRS("Position") = 0 objRS("Type") = 2 objRS("Charset") = charcode ReturnHTML=objRS("ReadText") } ;¥Õ¥¡¥¤¥ë¤È¤·¤ÆÊݸ¤¹¤ë¾ì¹ç ;objRS->"Savetofile" sDest,adSaveCreateOverWrite objRS->"Close" }else{ dialog "Àܳ¤Ë¼ºÇÔÃפ·¤Þ¤·¤¿¡£",0,"¥¨¥é¡¼" } ;objprm objectID,ReturnHTML if vartype(objRS)==6 { if varuse(objRS)==1 : delcom objRS } delcom objXMLHTTP if crlf_flg = 1 : toCRLF ReturnHTML return ReturnHTML #global ;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡± ; ²þ¹Ô¥³¡¼¥ÉCRLFÅý°ì¥â¥¸¥å¡¼¥ë ; ; ;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡² #module "ReturnCode" ;******************************************************************************* ; ²þ¹Ô¥³¡¼¥É¤òCRLF(0x0D 0x0A)¤ËÃÖ´¹ ; ; toCRLF p1 ; ; p1=ÊÑ¿ô : ÃÖ´¹¤¹¤ëʸ»úÎó¤ÎÆþ¤Ã¤¿ÊÑ¿ô ; ;******************************************************************************* #deffunc toCRLF var sp1 ;²þ¹Ô¥³¡¼¥ÉLF(0x0A = \n)¤òºî¤ë lf="@" :poke lf,0,$A ;²þ¹Ô¥³¡¼¥ÉCR(0x0D = \r)¤òºî¤ë cr="@" :poke cr,0,$D repeat 3 switch cnt case 0 :a="\n" :b=lf :swbreak ;CR+LF ¢ª LF [HSP¤Î\n = \r\n] case 1 :a=cr :b=lf :swbreak ;CR ¢ª LF case 2 :a=lf :b="\n" :swbreak ;LF ¢ª CR+LF swend i=0 repeat c=instr(sp1,i,a) ;ÃÖ´¹¤¨Ê¸»ú¸¡º÷ if c=-1 :c=cnt :break ;¸¡º÷¤µ¤ì¤Ê¤¯¤Ê¤Ã¤¿¤é½ªÎ»¡¢¸¡º÷¸Ä¿ô¤òµ²± i+=c+strlen(a) index(cnt+1)=i ;¸¡º÷¤µ¤ì¤¿Ê¸»ú¤Î¸å¤í¤Îindex¤òµÏ¿ loop index(c+1)=strlen(sp1)+strlen(a) ;ʸ»úÎó¤ÎºÇ½ªindex+ÃÖ´¹¤¨Ê¸»ú¥µ¥¤¥º¤òÆþ¤ì¤ë sdim temp,strlen(sp1) +(strlen(b)-strlen(a))*c +1 ;ÍÆÎ̤ò³ÎÊÝ(Áýʬ¹Íθ) repeat temp+=strmid(sp1,index(cnt),index(cnt+1)-index(cnt)-strlen(a)) ;Á°¤Î¸¡º÷°ÌÃÖ¤«¤é¼¡¤Î¸¡º÷°ÌÃ֤ޤǤòÀÚ¤ê¼è¤Ã¤Ætemp¤Ë¤Ä¤Ê¤²¤ë if cnt=c :break temp+=b ;ÃÖ¤´¹¤¨¤ëʸ»ú¤òÃÖ¤¯ loop sp1=temp loop return c #global ;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡± ; ¶Ê¥Õ¥¡¥¤¥ë¤«¤é¾ðÊó¼èÆÀ¥â¥¸¥å¡¼¥ë ; ; mp3infp_ExportFunc_HSP.hsp »ÈÍÑ ;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡² #module GetMusicData #define global title_artist_get(%1="",%2=dummy,%3=dummy,%4=dummy,%5=dummy) _title_artist_get %1,%2,%3,%4,%5 ;******************************************************************************* ; ¥Õ¥¡¥¤¥ë¤«¤é¥¿¥°¾ðÊó¤ò¼èÆÀ ; ; GetMusicInfo p1, p2, p3, p4, p5 ; ; p1=ʸ»úÎó : ²»³Ú¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë¥Ñ¥¹ ; p2=ÊÑ¿ô : ¥¿¥¤¥È¥ë¤¬Æþ¤ë ; p3=ÊÑ¿ô : ¥¢¡¼¥Æ¥£¥¹¥È¤¬Æþ¤ë ; p4=ÊÑ¿ô : ¥¢¥ë¥Ð¥à¤¬Æþ¤ë ; p5=ÊÑ¿ô : ºÆÀ¸»þ´Ö¤¬Æþ¤ë ; ;******************************************************************************* #deffunc GetMusicInfo str f_name, var lm_title, var lm_artist, var lm_album, var lm_time lm_title="" lm_artist="" lm_album="" lm_time="" ;mp3infp title_artist_get f_name,lm_title,lm_artist,lm_album if lm_title="" :lm_title=getpath(f_name,1+8) f_name_=f_name lm_time="" mp3infp_Load hwnd, varptr(f_name_) if stat!-1 { mtime="TIME" mp3infp_GetValue varptr(mtime),varptr(prmm) prm_str="" dupptr prm_str,prmm,32,2 ;¾ðÊó¤òʸ»úÎó¤Ç¼èÆÀ lm_time=prm_str if instr(lm_time,0," (")!-1 { lm_time = strmid( lm_time,0,instr(lm_time,0," (") ) } } if lm_time="" { mci "open \""+f_name+"\" alias flv type mpegvideo" mci "set flv time format milliseconds" mci "status flv length": sl=stat mci "close all" slm=sl/60/1000 sls=sl/1000-slm*60 lm_time = strf("%d:%02d",slm,sls) } return #deffunc sampling_get_wma str prm0 ,var prm1 prm0_=prm0 mp3infp_Load hwnd,varptr(prm0_) ;¶Ê¤òÆɤ߹þ¤à if stat=-1 :return 0 afmt="AFMT" dim prmm mp3infp_GetValue varptr(afmt),varptr(prmm) ;¥Õ¥©¡¼¥Þ¥Ã¥È¾ðÊ󥢥ɥ쥹¤ò¼èÆÀ if stat=0 :return 0 prm_str="" dupptr prm_str,prmm,32,2 ;¾ðÊó¤òʸ»úÎó¤Ç¼èÆÀ prm3=prm_str c=instr(prm3,0,"Hz") ;Hz¤Þ¤Ç¸«¤Ä¤±¡¢¤½¤³¤«¤éµÕ¸¡º÷¤·¿ôÃͤòÆÀ¤ë k=0 :suti=0 repeat c,1 code=peek(prm3,c-cnt) if code=107 :k=1 ;k(¥¥í)¤ò¸«¤Ä¤±¤¿¤é³Ð¤¨¤Æ¤ª¤¯ if code>=48 & code<=57 :suti=1 ;¿ôÃͥե饰 if code=32 & suti=1 :cn=cnt :break ;¿ôÃͤò´û¤Ë¸«¤Ä¤±¤¿¸å¤Î¶õÇò¤Ç¸¡º÷¤ò¤ä¤á¤ë loop prm3=strmid(prm3,c-cn+1,cn-1) ;¥µ¥ó¥×¥ê¥ó¥°¥ì¡¼¥È(ʸ»úÎó)¤ò¼èÆÀ prm4="" repeat strlen(prm3) if peek(prm3,cnt)>=48 & peek(prm3,cnt)<=57 :prm4+=strmid(prm3,cnt,1) ;¿ôÃͤÀ¤±¤Ëľ¤¹ if peek(prm3,cnt)=46 :dot=cnt loop dosu=0+(dot=1)*(strlen(prm4)-dot) prm1=int(prm4)*(1+(k=1)*999)/(1+(dosu=1)*9)/(1+(dosu=2)*99)/(1+(dosu=3)*999) return 1 #defcfunc syuseti int rate if rate > 46050 { return 9.6; }else { if rate > 38050 { return 9.702; }else { if rate > 28000 { return 9.92; }else { if rate > 23025 { return 9.84; }else { if rate > 19025 { return 9.9225; }else { if rate > 14000 { return 9.92; }else { if rate > 11512 { return 9.96; }else { if rate > 9512 { return 9.9225; }else { return 10.0; } } } } } } } } ; #deffunc _title_artist_get str prm0 ,var prm1 ,var prm2 ,var prm3_, var prm4_ prm0_=prm0 mp3infp_Load hwnd,varptr(prm0_) ;¶Ê¤òÆɤ߹þ¤à if stat=-1 :return 0 sdim type,4,4 type(0)="" type(1)="_v1" type(2)="_v2" type(3)="_rmp" mp3infp_GetType if stat=1 { ;MP3 ¤Î¾ì¹ç mp3infp_mp3_GetTagType st=stat repeat 1 if st&2 :st=2 :break ;ID3v2 if st&4 :st=3 :break ;RiffSIF if st&1 :st=1 :break ;ID3v1 st=-1 :break ;¥¿¥°Íѥǡ¼¥¿Îΰè¤ò»ý¤¿¤Ê¤¤MP3 loop }else :st=0 if st=-1 :return 0 afmt="INAM"+type(st);¥¿¥¤¥È¥ë dim prmm mp3infp_GetValue varptr(afmt),varptr(prmm) ;¥Õ¥©¡¼¥Þ¥Ã¥È¾ðÊ󥢥ɥ쥹¤ò¼èÆÀ if stat=0 :return 0 prm_str="" dupptr prm_str,prmm,32,2 ;¾ðÊó¤òʸ»úÎó¤Ç¼èÆÀ prm1=prm_str afmt="IART"+type(st);¥¢¡¼¥Æ¥£¥¹¥È dim prmm mp3infp_GetValue varptr(afmt),varptr(prmm) ;¥Õ¥©¡¼¥Þ¥Ã¥È¾ðÊ󥢥ɥ쥹¤ò¼èÆÀ if stat=0 :return 1 prm_str="" dupptr prm_str,prmm,32,2 ;¾ðÊó¤òʸ»úÎó¤Ç¼èÆÀ prm2=prm_str afmt="IPRD"+type(st);¥¢¥ë¥Ð¥à dim prmm mp3infp_GetValue varptr(afmt),varptr(prmm) ;¥Õ¥©¡¼¥Þ¥Ã¥È¾ðÊ󥢥ɥ쥹¤ò¼èÆÀ if stat=0 :return 1 prm_str="" dupptr prm_str,prmm,32,2 ;¾ðÊó¤òʸ»úÎó¤Ç¼èÆÀ prm3_=prm_str afmt="TRACK"+type(st);¥È¥é¥Ã¥¯ dim prmm mp3infp_GetValue varptr(afmt),varptr(prmm) ;¥Õ¥©¡¼¥Þ¥Ã¥È¾ðÊ󥢥ɥ쥹¤ò¼èÆÀ if stat=0 :return 1 prm_str="" dupptr prm_str,prmm,32,2 ;¾ðÊó¤òʸ»úÎó¤Ç¼èÆÀ prm4_=prm_str return 3 #global ;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡± ; ²Î»ìURL¤«¤é²Î»ì¤òÃê½Ð¤¹¤ë¥â¥¸¥å¡¼¥ë ; ; lua-xl.hsp »ÈÍÑ ; HTML¥½¡¼¥¹¼èÆÀ¥â¥¸¥å¡¼¥ë(GetHTMLSource) »ÈÍÑ ;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡² #module ;******************************************************************************* ; LUA¤òÍøÍѤ·¤Æ¡¢URL»ØÄê¤Ç²Î»ì¥µ¥¤¥È¤«¤é²Î»ì¤ò¼èÆÀ¡¦Ãê½Ð ; ; GetLyrics( p1, p2 ) ; ; p1=ʸ»úÎó : URL ; p2=ʸ»úÎó : ²Î»ì¥µ¥¤¥È¤ÎHTML¤«¤é²Î»ì¤òÃê½Ð¤¹¤ëLUA¥¹¥¯¥ê¥×¥È ; ¾ÜºÙ¤Ïhttp://w10.oroti.net/timetag/pukiwiki/index.php?LyricsGetScript¤¢¤¿¤ê¤ò»²¾È ; ; Ìá¤êÃÍ : ²Î»ì ; ;******************************************************************************* #defcfunc GetLyrics str lyricsURL, str _LuaScript LuaScript=_LuaScript //¥ê¥ó¥¯URL¤«¤é¥ê¥ó¥¯Àè¤ÎHTML¥½¡¼¥¹¤ò¼èÆÀ ¢ª Lua¥¹¥¯¥ê¥×¥È¤ËHTML¤ò¤½¤Î¤Þ¤ÞÅꤲ¤ë LuaSendRawDate= GetHTMLSource( lyricsURL ) luaL_newstate // Lua½é´ü²½ L = stat luaL_openlibs L luaL_loadstring L, LuaScript //¶õ¼Â¹Ô¤·¤Æ´Ø¿ô¤òǧ¼±¤µ¤»¤ë(?) lua_pcall L, 0, 0, 0 if stat!0 { lua_close L // Lua³«Êü dialog "lua_pcall()=="+stat+"\nLua¥¹¥¯¥ê¥×¥È¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿(1)",1,"" return } //LyricsInfoGet´Ø¿ô¤ò¥¹¥¿¥Ã¥¯¤ËÀѤà lua_getfield L, LUA_GLOBALSINDEX, "LyricsInfoGet" //°ú¿ô¤ò¥¹¥¿¥Ã¥¯¤ËÀѤà lua_pushstring L, LuaSendRawDate //¥¹¥¿¥Ã¥¯ºÇ²¼Áؤò»ØÄꤷ¤Æ´Ø¿ô¤ò¼Â¹Ô lua_pcall L, 1, LUA_MULTRET, 0 if stat!0 { lua_close L // Lua³«Êü dialog "lua_pcall()=="+stat+"\nLua¥¹¥¯¥ê¥×¥È¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿(2)",1,"" return } lyrics="" //¥¹¥¿¥Ã¥¯¤ÎÍ×ÁÇ¿ô(Ìá¤êÃͤοô)¤ò¼èÆÀ lua_gettop L //Í×ÁǤβó¿ô·«¤êÊÖ¤·¤Æ¥¹¥¿¥Ã¥¯¤òÁ´ÉôÆɤ߼è¤ê½ü¤¯ repeat stat //°ú¿ô¤ò¼èÆÀ lua_tostring L, -1 //¥Ý¥¤¥ó¥¿Àè¤Îʸ»úÎó¤òʸ»úÎóÊÑ¿ô¤Çɽ¤»¤ë¤è¤¦¤Ë¤¹¤ë(¥¯¥í¡¼¥óÊÑ¿ô) dupptr luarefstr,stat,1,2 ;¥Ç¡¼¥¿¥¿¥¤¥× getstr infotype, luarefstr, 0,'=' ;¥Ç¡¼¥¿ÆâÍÆ infodata = strmid(luarefstr,strsize,strlen(luarefstr)) switch infotype case "LYRICS" lyrics = infodata swbreak case "TITLE" swbreak case "ARTIST" swbreak swend lua_pop L,1 loop lua_close L // Lua³«Êü return lyrics #global ;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡± ; LyricsMaster¤Î¥Æ¥¥¹¥È¤ò¼èÆÀ¡¦ÀßÄꡦ²òÀÏ ¥â¥¸¥å¡¼¥ë ; ; Lyrics Master @ http://www.kenichimaehashi.com/lyricsmaster/ ; RhythmicaLyrics¤«¤é»ý¤Ã¤Æ¤¤Æ¤½¤Î¤Þ¤Þ ; user32.as »ÈÍÑ ; mod_regexp.as »ÈÍÑ ;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡² #module lyricsmastertxt ;******************************************************************************* ; LyricsMaster¤Î¥ê¥Ã¥Á¥¨¥Ç¥£¥Ã¥È¤ÎÃæ¿È¤ò¼èÆÀ ; ; GetEdit_LyricsMster( p1 ) ; ; p1=¿ôÃÍ : LyricsMaster¤Î¥¦¥£¥ó¥É¥¦¥Ï¥ó¥É¥ë ; ; Ìá¤êÃÍ : LyricsMaster¤Î¥ê¥Ã¥Á¥¨¥Ç¥£¥Ã¥È¤ÎÃæ¿È ; ;******************************************************************************* #defcfunc GetEdit_LyricsMster int lm_hwnd sdim editbox, 64*1024 RE20Wclass="RICHEDIT50W" FindWindowEx lm_hwnd,0,varptr(RE20Wclass),0 RICHEDIT_hWnd = stat if RICHEDIT_hWnd=0 { RE20Wclass="RichEdit20W" FindWindowEx lm_hwnd,0,varptr(RE20Wclass),0 RICHEDIT_hWnd=stat } if RICHEDIT_hWnd!0 { sendmsg RICHEDIT_hWnd,WM_GETTEXT,64*1024,varptr(editbox) } return editbox ;******************************************************************************* ; LyricsMaster¤Î¥ê¥Ã¥Á¥¨¥Ç¥£¥Ã¥È¤ÎÃæ¿È¤òÀßÄê ; ; GetEdit_LyricsMster p1, p2 ; ; p1=¿ôÃÍ : LyricsMaster¤Î¥¦¥£¥ó¥É¥¦¥Ï¥ó¥É¥ë ; p2=ʸ»úÎó : LyricsMaster¤Î¥ê¥Ã¥Á¥¨¥Ç¥£¥Ã¥È¤Ë½ñ¤¹þ¤ß¤¿¤¤Ê¸»úÎó ; ;******************************************************************************* #deffunc SetEdit_LyricsMster int lm_hwnd, str edittext editbox = edittext RE20Wclass="RICHEDIT50W" FindWindowEx lm_hwnd,0,varptr(RE20Wclass),0 RICHEDIT_hWnd = stat if RICHEDIT_hWnd=0 { RE20Wclass="RichEdit20W" FindWindowEx lm_hwnd,0,varptr(RE20Wclass),0 RICHEDIT_hWnd=stat } if RICHEDIT_hWnd!0 { sendmsg RICHEDIT_hWnd,WM_SETTEXT,,varptr(editbox) } return ;******************************************************************************* ; LyricsMaster¤ÎRichEdit¤«¤é¸¡º÷¤·¤¿²Î»ì¥µ¥¤¥È̾(¡Ü²Î»ì¥µ¥¤¥È¤«¤é¥¿¥¤¥È¥ë¡¢¥¢¡¼¥Æ¥£¥¹¥È̾)¤ò¼èÆÀ ; ; LMstringDivide ; ; p1=¿ôÃÍ : ; ;******************************************************************************* #deffunc LMstringDivide var vp1, str sp2, var vp3, var vp4, var vp5, int ip6 i=0 getstr temp,vp1,i :i+=strsize ;1¹ÔÌÜ vp3=temp ;¥¿¥¤¥È¥ë getstr temp,vp1,i :i+=strsize ;2¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;3¹ÔÌÜ ;// ȽÃdz«»Ï a=strmid(temp,0,4) ;ºÇ½é¤Î4¥Ð¥¤¥È¤ò¼èÆÀ if a="Arti" { ;SING365.COM¡¡/¡¡Absolute Lyrics¡¡/¡¡Lyrics Search Engine getstr a,temp,0,':' ;Ƭ¤«¤é':'¤Þ¤Ç¤ò¼èÆÀ if a="Artist" { vp4=strmid(temp,8,1024) ;¥¢¡¼¥Æ¥£¥¹¥È getstr temp,vp1,i :i+=strsize ;4¹ÔÌÜ if strmid(temp,0,6)="Album:" { vp5="Lyrics Search Engine" getstr temp,vp1,i :i+=strsize ;5¹ÔÌÜ vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ return 1 }else :if temp="" { vp5="SING365.COM" if ip6=2 && sp2="absolutelyrics" :vp5="Absolute Lyrics" if ip6=2 && sp2="metrolyrics" :vp5="MetroLyrics" vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ return 1 } } }else :if a="¥¢¡¼" { ;²Î»ìGET!!¡¡/¡¡¥¢¥Ë¥«¥· vp4=strmid(temp,14,1024) ;¥¢¡¼¥Æ¥£¥¹¥È getstr temp,vp1,i :i+=strsize ;4¹ÔÌÜ if strmid(temp,0,4)="ºî»ì" { vp5="²Î»ìGET!!" getstr temp,vp1,i :i+=strsize ;5¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;6¹ÔÌÜ vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ return 1 }else :if strmid(temp,0,4)="ÈÖÁÈ" { vp5="¥¢¥Ë¥«¥·" getstr temp,vp1,i :i+=strsize ;5¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;6¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;7¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;8¹ÔÌÜ vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ return 1 } }else :if a="¥¿¥¤" { ;²Î»ìGET!! vp5="²Î»ìGET!!" getstr temp,vp1,i :i+=strsize ;4¹ÔÌÜ vp4=strmid(temp,14,1024) ;¥¢¡¼¥Æ¥£¥¹¥È getstr temp,vp1,i :i+=strsize ;5¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;6¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;7¹ÔÌÜ vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ return 1 }else :if a="ºî»ì" { getstr temp,vp1,i :i+=strsize ;4¹ÔÌÜ if strmid(temp,0,4)!"ºî¶Ê" :return 0 getstr temp,vp1,i :i+=strsize ;5¹ÔÌÜ if strmid(temp,0,4)="ÊÔ¶Ê" { ;¥¢¥Ë¥á¥½¥ó¥°¤Î²Î»ì¤Ê¤é¤³¤³¤Ë¤ª¤Þ¤«¤»¡© getstr temp,vp1,i :i+=strsize ;6¹ÔÌÜ if strmid(temp,0,4)!"²Î¡¡" :return 0 vp4=strmid(temp,4,1024) ;¥¢¡¼¥Æ¥£¥¹¥È vp5="¥¢¥Ë¥á¥½¥ó¥°¤Î²Î»ì¤Ê¤é¤³¤³¤Ë¤ª¤Þ¤«¤»¡©" getstr temp,vp1,i :i+=strsize ;7¹ÔÌÜ vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ return 1 }else :if strmid(temp,0,4)="¥¢¡¼" { ;UtaTen vp4=strmid(temp,14,1024) ;¥¢¡¼¥Æ¥£¥¹¥È vp5="UtaTen" getstr temp,vp1,i :i+=strsize ;6¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;7¹ÔÌÜ vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ return 1 }else :if strmid(temp,0,4)="±´¡¡" { vp4=strmid(temp,4,1024) ;¥¢¡¼¥Æ¥£¥¹¥È getstr temp,vp1,i :i+=strsize ;6¹ÔÌÜ vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ if sp2="yahoo" { vp5="Yahoo!¥ß¥å¡¼¥¸¥Ã¥¯" return 1 }else :if sp2="kashinavi" { vp5="²Î»ì¥Ê¥Ó" return 1 } }else :if strmid(temp,0,4)="²Î¡¡" { ;USENÁí¹ç¥Á¥ã¡¼¥È vp4=strmid(temp,4,1024) ;¥¢¡¼¥Æ¥£¥¹¥È vp5="USENÁí¹ç¥Á¥ã¡¼¥È" getstr temp,vp1,i :i+=strsize ;6¹ÔÌÜ vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ return 1 } }else :if a="²Î¼ê" { ;²Î¥Í¥Ã¥È¡¡/¡¡²Î»ì¥¿¥¤¥à vp4=strmid(temp,6,1024) ;¥¢¡¼¥Æ¥£¥¹¥È getstr temp,vp1,i :i+=strsize ;4¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;5¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;6¹ÔÌÜ if strmid(temp,0,4)="ÊÔ¶Ê" { vp5="²Î»ì¥¿¥¤¥à" getstr temp,vp1,i :i+=strsize ;7¹ÔÌÜ vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ return 1 }else :if temp="" { vp5="²Î¥Í¥Ã¥È" vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ return 1 } }else :if a="±´¡¡" { ;¤¦¤¿¤Þ¤Ã¤×¡¡¤«¡¡Yahoo!¥ß¥å¡¼¥¸¥Ã¥¯ vp4=strmid(temp,4,1024) ;¥¢¡¼¥Æ¥£¥¹¥È getstr temp,vp1,i :i+=strsize ;4¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;5¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;6¹ÔÌÜ vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ if ip6=2 { ;¥Ð¡¼¥¸¥ç¥ó£²¤Ïɬ¤º vp5="¤¦¤¿¤Þ¤Ã¤×" return 1 }else { ;¥Ð¡¼¥¸¥ç¥ó£± vp5="¤¦¤¿¤Þ¤Ã¤×" ;£±¤Ç¤Ï¤È¤ê¤¢¤¨¤º¤¦¤¿¤Þ¤Ã¤× if sp2="yahoo" :vp5="Yahoo!¥ß¥å¡¼¥¸¥Ã¥¯" return 1 } return 0 }else :if a="²Î¡¡" { ;¥¤¥Ù¥¹¥¿²Î»ì¤È¤ë¡¡/¡¡Listen Japan¡¡/¡¡¥«¥é¥ª¥±Íѡֲλì¡×¤Î¥Ú¡¼¥¸ vp4=strmid(temp,4,1024) ;¥¢¡¼¥Æ¥£¥¹¥È getstr temp,vp1,i :i+=strsize ;4¹ÔÌÜ if strmid(temp,0,4)="ºî»ì" { ;¥¤¥Ù¥¹¥¿²Î»ì¤È¤ë if sp2="evesta" { vp5="¥¤¥Ù¥¹¥¿" getstr temp,vp1,i :i+=strsize ;5¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;6¹ÔÌÜ vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ return 1 }else :if sp2="listenjapan" { vp5="Listen Japan" getstr temp,vp1,i :i+=strsize ;5¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;6¹ÔÌÜ vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ return 1 } }else :if strmid(temp,0,4)="»ì¡¡" { vp5="J-Total Music" getstr temp,vp1,i :i+=strsize ;5¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;6¹ÔÌÜ getstr temp,vp1,i :i+=strsize ;7¹ÔÌÜ vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ return 1 }else :if strmid(temp,0,4)="" { ;¥«¥é¥ª¥±Íѡֲλì¡×¤Î¥Ú¡¼¥¸ vp5="¥«¥é¥ª¥±Íѡֲλì¡×¤Î¥Ú¡¼¥¸" vp1=strmid(vp1,i,strlen.vp1) ;²Î»ì¤Î¤ß²½ return 1 } } return 0 ;******************************************************************************* ; LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ëÆâÍƤò¼èÆÀ ; ; LoadLMpreferences p1 ; ; p1=¿ôÃÍ : ¥ª¥×¥·¥ç¥ó ; p1 = 1 ¡§ Ϣ³¼èÆÀ¤ËºÇŬ²½¤¹¤ë ; ; Ìá¤êÃÍ : LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ëÆâÍÆ ; ;******************************************************************************* #defcfunc LoadLMpreferences int opt //LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É preferences_lyricsmaster = "" exist dirinfo($1001A)+"\\preferences.lyricsmaster" if strsize = -1 :return "" notesel preferences_lyricsmaster noteload dirinfo($1001A)+"\\preferences.lyricsmaster" noteunsel preferences_lyricsmaster_b = preferences_lyricsmaster if opt=1 { ;Ϣ³¼èÆÀ¤ËºÇŬ²½¤¹¤ë¤è¤¦¤ËÀßÄêÊѹ¹ preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_autoDetect\tFalse", "search_autoDetect\tTrue") preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_autoSelectMaxRank\tFalse", "search_autoSelectMaxRank\tTrue") preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useUtamap\tTrue", "search_useUtamap\tFalse") preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useKashiGet\tTrue", "search_useKashiGet\tFalse") preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useUtanet\tTrue", "search_useUtanet\tFalse") preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useLyricsSearchEngine\tTrue", "search_useLyricsSearchEngine\tFalse") preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useSing365com\tTrue", "search_useSing365com\tFalse") preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useAslse\tTrue", "search_useAslse\tFalse") preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useExtraEngine\tTrue", "search_useExtraEngine\tFalse") preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useJoysound\tTrue", "search_useJoysound\tFalse") } return preferences_lyricsmaster ;******************************************************************************* ; LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÊݸ ; ; SaveLMpreferences p1 ; ; p1=ʸ»úÎó : ¥ª¥×¥·¥ç¥ó ; p1 = "" ¡§ Ϣ³¼èÆÀ¤ËºÇŬ²½¤¹¤ë ; ; Ìá¤êÃÍ : LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ëÆâÍÆ ; ;******************************************************************************* #deffunc SaveLMpreferences str savetxt preferences_lyricsmaster = savetxt ;savetxt=""¤Î¤È¤¡¢ºÇ¸å¤Ë¥í¡¼¥É¤·¤¿¤â¤Î¤¬¤¢¤ì¤Ð¤½¤ì¤ÇÊݸ¤·¤Æ¤â¤È¤ËÌ᤹ if savetxt = "" { if vartype(preferences_lyricsmaster_b)=2 { ;ºÇ¸å¤Ë¥í¡¼¥É¤·¤¿ÀßÄê preferences_lyricsmaster = preferences_lyricsmaster_b }else { ;¥í¡¼¥É¤·¤¿¤â¤Î¤¬¤Ê¤¯¤Æʸ»úÎ󤬶õ¤Ê¤é²¿¤â¤·¤Ê¤¤ return 0 } } //LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òÊݸ notesel preferences_lyricsmaster notesave dirinfo($1001A)+"\\preferences.lyricsmaster" noteunsel return 1 ;******************************************************************************* ; LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤òºÇ¸å¤Ë¥í¡¼¥É¤·¤¿¤È¤¤Î¾õÂÖ¤ËÌᤷ¤ÆÊݸ¤¹¤ë¥Þ¥¯¥í ; ; SaveLMpreferences_LastLoad ; ;******************************************************************************* #define global SaveLMpreferences_LastLoad SaveLMpreferences "" ;******************************************************************************* ; LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ë¥Æ¥¥¹¥È¤òÆÃÄê¤Î²Î»ì¥µ¥¤¥È¤«¤é¸¡º÷¤¹¤ë¤è¤¦¤ËÊѹ¹¤¹¤ë ; ; ReplaceSearchSiteLMpreferences p1 ; ; p1=ʸ»úÎó : LyricsMasterÀßÄê¥Õ¥¡¥¤¥ë¥Æ¥¥¹¥È ; p2=ʸ»úÎó : ²Î»ì¥µ¥¤¥È̾ ; ; Ìá¤êÃÍ : Êѹ¹¤µ¤ì¤¿LyricsMaster¤ÎÀßÄê¥Õ¥¡¥¤¥ëÆâÍÆ ; ;******************************************************************************* #defcfunc ReplaceSearchSiteLMpreferences str savetxt, str sitetxt preferences_lyricsmaster = savetxt ;savetxt=""¤Î¤È¤¡¢ºÇ¸å¤Ë¥í¡¼¥É¤·¤¿¤â¤Î¤¬¤¢¤ì¤Ð¤½¤ì¤ÇÊݸ¤·¤Æ¤â¤È¤ËÌ᤹ if savetxt = "" { if vartype(preferences_lyricsmaster_b)=2 { ;ºÇ¸å¤Ë¥í¡¼¥É¤·¤¿ÀßÄê preferences_lyricsmaster = preferences_lyricsmaster_b }else { ;¥í¡¼¥É¤·¤¿¤â¤Î¤¬¤Ê¤¯¤Æʸ»úÎ󤬶õ¤Ê¤é²¿¤â¤·¤Ê¤¤ return 0 } } if sitetxt= "¤¦¤¿¤Þ¤Ã¤×" { preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useUtamap\tFalse", "search_useUtamap\tTrue") }else : if sitetxt="²Î»ìGET!!" { preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useKashiGet\tFalse", "search_useKashiGet\tTrue") }else : if sitetxt="²Î¥Í¥Ã¥È" { preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useUtanet\tFalse", "search_useUtanet\tTrue") }else : if sitetxt="¥¢¥Ë¥á¥½¥ó¥°¤Î²Î»ì¤Ê¤é¤³¤³¤Ë¤ª¤Þ¤«¤»¡©" { preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useAslse\tFalse", "search_useAslse\tTrue") }else : if sitetxt="SING365.COM" { preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useSing365com\tFalse", "search_useSing365com\tTrue") }else : if sitetxt="Lyrics Search Engine" { preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useLyricsSearchEngine\tFalse", "search_useLyricsSearchEngine\tTrue") }else { preferences_lyricsmaster = replace(preferences_lyricsmaster, "search_useExtraEngine\tFalse", "search_useExtraEngine\tTrue") } return preferences_lyricsmaster #global ;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡± ; ¥¿¥¤¥à¥¿¥°ÉÕ¤²Î»ìÀ¸À® ¥â¥¸¥å¡¼¥ë ; ; ¥¿¥¤¥à¥¿¥°¾ðÊó¤Ë¤Ä¤¤¤Æ @ http://w10.oroti.net/timetag/infoofdb.html ; RhythmicaLyrics¤«¤é»ý¤Ã¤Æ¤¤Æ¤½¤Î¤Þ¤Þ ;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡² #module TimetagLyrics ;//2¥Ð¥¤¥Èʸ»úȽÄê #define ctype wbyte(%1) ( (( (129<=%1)&(%1<=159) )||( (224<=%1)&(%1<=252) )) ) ;******************************************************************************* ; ²Î»ì¤È¥¿¥¤¥à¥¿¥°¾ðÊ󤫤饿¥¤¥à¥¿¥°ÉÕ¤²Î»ì¤òÀ¸À® ; ; ApplyTimetagData( p1, p2 ) ; ; p1=ʸ»úÎó : ²Î»ì ; p2=ʸ»úÎó : ¥¿¥¤¥à¥¿¥°¾ðÊó ; ; Ìá¤êÃÍ : ¥¿¥¤¥à¥¿¥°ÉÕ¤²Î»ì ; ;******************************************************************************* #defcfunc ApplyTimetagData str kasi_, var data kasi=kasi_ tekiyo="" di=0 :ki=0 repeat getstr temp_data, data, di :di+=strsize if strsize=0 { ;²Î»ì¤¬»Ä¤Ã¤Æ¤¿¤é if ki<strlen(kasi) :tekiyo+="\n"+strmid(kasi,ki,strlen(kasi)) break } if cnt>0 :tekiyo+="\n" if peek(temp_data,0)='@' :tekiyo+=temp_data :continue getstr temp_kasi, kasi, ki :ki+=strsize t_data_index=0 t_kasi_index=0 mojisu="" repeat strlen(temp_data) if 48<=peek(temp_data,cnt) && peek(temp_data,cnt)<=57 { ;0¡Á9¤Ê¤éʸ»ú¿ô¤È¤·¤ÆÀѤó¤Ç¤¤¤¯ mojisu+=strmid(temp_data,cnt,1) continue }else { ;¿ô»ú¤¸¤ã¤Ê¤¤ if mojisu!"" { ;´û¤Ëmojisu¤Ë³ÊǼ¤µ¤ì¤Æ¤¤¤¿¤é¡¢Ê¸»ú¿ô¤Ö¤ó²Î»ì¤ò½¦¤Ã¤Æ¤¤¤¯ repeat int(mojisu) if t_kasi_index>=strlen(temp_kasi) :break i=wbyte(peek(temp_kasi,t_kasi_index))+1 tekiyo+=strmid(temp_kasi,t_kasi_index,i) t_kasi_index+=i loop mojisu="" } ;¤³¤ÎÀ西¥¤¥à¥¿¥°¤«¤É¤¦¤« i=tagkana(temp_data,cnt) if i>0 { tekiyo+=strmid(temp_data,cnt,i+1) continue cnt+i+1 } ;¤½¤ì°Ê³°¡£¥Û¥ó¥È¤Ï¤³¤³¤Þ¤ÇÍè¤Ê¤¤¤ó¤À¤±¤É°ì±þ¡£¤½¤Î¤Þ¤Þ³ÊǼ¤·¤Æ¤¤¤¯ i=wbyte(peek(temp_data,cnt))+1 tekiyo+=strmid(temp_data,cnt,i) continue cnt+i } loop ;¤â¤·²Î»ì¤¬1¹Ôʬ¾ÃÈñ¤·¤Æ¤Ê¤«¤Ã¤¿¤é»Ä¤ê¤òËöÈø¤Ë¤¯¤Ã¤Ä¤±¤ë if t_kasi_index<strlen(temp_kasi) :tekiyo+=strmid(temp_kasi,t_kasi_index,strlen(temp_kasi)) loop return tekiyo ;¥¿¥¤¥à¥¿¥°¤«³Îǧ #defcfunc tagkana var sp1, int index temp=strmid(sp1,index+0,1) :if temp="" :return 0 :else :if peek(temp,0)!'[' :return 0 temp=strmid(sp1,index+1,1) :if temp="" :return 0 :else :if peek(temp,0)<48|57<peek(temp,0) :return 0 temp=strmid(sp1,index+2,1) :if temp="" :return 0 :else :if peek(temp,0)<48|57<peek(temp,0) :return 0 temp=strmid(sp1,index+3,1) :if temp="" :return 0 :else :if peek(temp,0)!':' :return 0 temp=strmid(sp1,index+4,1) :if temp="" :return 0 :else :if peek(temp,0)<48|57<peek(temp,0) :return 0 temp=strmid(sp1,index+5,1) :if temp="" :return 0 :else :if peek(temp,0)<48|57<peek(temp,0) :return 0 temp=strmid(sp1,index+6,1) :if temp="" :return 0 if peek(temp,0)=']' :return 6 if peek(temp,0)!':' && peek(temp,0)!'.' :return 0 flametime=(peek(temp,0)='.') temp=strmid(sp1,index+7,1) :if temp="" :return 0 :else :if peek(temp,0)<48|57<peek(temp,0) :return 0 temp=strmid(sp1,index+8,1) :if temp="" :return 0 :else :if peek(temp,0)<48|57<peek(temp,0) :return 0 temp=strmid(sp1,index+9,1) :if temp="" :return 0 :else :if peek(temp,0)!']' :return 0 if flametime { poke sp1, index+6, ':' if op_save_dot@=0 { op_save_dot@=2 :op_save_dot2@=2 if is_gsel_create(5) { selg=ginfo_sel gsel 5 objprm id_op_save_dot@,1 gsel selg } } }else { } return 9 #global ;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡± ; ¥Ä¡¼¥ë¥Á¥Ã¥× ¥â¥¸¥å¡¼¥ë ; ; ;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡² #module "tooltip" ;// ¥Ä¡¼¥ë¥Á¥Ã¥×½é´ü²½ #deffunc tipset_init winobj "tooltips_class32","",0,3 ;,400,400,0,0 htooltip(tip_id)=objinfo(stat,2) dim RECT,4 ;¢§comctl32.dll¤Î¥Ð¡¼¥¸¥ç¥ó¤¬4.70°Ê¹ß¤Ç͸ú ; ¢ RECT=3,3,3,3 SendMsg htooltip,TTM_SETMARGIN,0,varptr(RECT) ;¥Þ¡¼¥¸¥ó SendMsg htooltip,TTM_SETMAXTIPWIDTH,0,500 ;tipwidth SendMsg htooltip,TTM_SETDELAYTIME,2,30000 ;ɽ¼¨»þ´Ö return ;// ¥Ä¡¼¥ë¥Á¥Ã¥×¥»¥Ã¥È #deffunc tipset int _ObjID, str _temp Objh=objinfo_hwnd(_ObjID) temp=_temp GetClientRect Objh, varptr(RECT) dim TOOLINFO,11 ;TOOLINFO¹½Â¤ÂÎ TOOLINFO(0) = 40, $10, Objh, 0, RECT.0, RECT.1, RECT.2, RECT.3, 0, varptr(temp) SendMsg htooltip,TTM_ADDTOOL,0,varptr(TOOLINFO) return #global ;¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡±¡± ; ¥À¥¤¥¢¥í¥°¥Ü¥Ã¥¯¥¹´ØÏ¢ ¥â¥¸¥å¡¼¥ë ; ; HSP module & macro Library¡Êstdlib¡Ëexdialog.as (HSP-NEXT ¤µ¤¯¤éÍͺî) ¤«¤éÈ´¿è¡¢¥â¥¸¥å¡¼¥ë²½ ;¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡²¡² #module exdlg ;******************************************************************************* ; ¥Õ¥©¥ë¥ÀÁªÂò¥À¥¤¥¢¥í¥° (foldlg) ; ; Ìá¤êÃÍ : À®¸ù stat=0, refstr=ÁªÂò¥Õ¥©¥ë¥À̾,¼ºÇÔ, stat=1 ; ; ¡¦½ñ¼° foldlg dlgtitle,deffolder,nOption ; ¡¦°ú¿ô dlgtitle (str) : ¥À¥¤¥¢¥í¥°¥¿¥¤¥È¥ë̾ (¾Êά²Ä) ; deffolder (str) : ½é´ü¥Õ¥©¥ë¥À̾ ; nOption (int) : 0,1,$400(0) ¥¹¥¿¥¤¥ë¥ª¥×¥·¥ç¥óÃÍ ; ¡¦¥¿¥¤¥× ¥â¥¸¥å¡¼¥ëÌ¿Îá ; ;-- (NOTE) --------------------------------------------------------------------- ; ; (»ÈÍÑÎã) ; foldlg "",exedir,0 ; dialog refstr,0 ;******************************************************************************* #deffunc foldlg str prm1,str prm2,int prm3 mref ref,65 ls=strlen(prm1) dlgtitle = prm1 if ls==0 : dlgtitle="¥Õ¥©¥ë¥À¤òÁªÂò¤·¤Æ²¼¤µ¤¤" sdim deffolder,MAX_PATH deffolder = prm2 if strlen(deffolder)==0 : deffolder=exedir nOption = prm3 ;(0,1,$4000) if (nOption!0)|(nOption!1)|(nOption!$4000) : nOption=0 dim browsinfo,64 : sdim retbuf,MAX_PATH browsinfo(0) = hwnd browsinfo(3) = varptr(dlgtitle) browsinfo(4) = nOption ;BrowseCallback ;½é´ü¥Õ¥©¥ë¥À»ØÄê²Äǽ ; if deffolder!="" { dim brproc, 9 browsinfo(5)=varptr(brproc) : browsinfo(6)=varptr(deffolder) p=varptr(SendMessage) brproc = $08247C83, $90177501, $102474FF, $6668016A, $FF000004 brproc(5) = $B8102474, p, $C031D0FF, $000010C2 } SHBrowseForFolder varptr(browsinfo) : pidl=stat SHGetPathFromIDList pidl,varptr(retbuf) ;: pidl=stat CoTaskMemFree pidl ref=retbuf : ls=strlen(retbuf) if ls==0 : ret=1 : else : ret=0 dim browsinfo,0 : sdim retbuf,0 : sdim deffolder,0 return ret #global
|