home *** CD-ROM | disk | FTP | other *** search
/ Hot Shareware 37 / hot37.iso / FICHEROS / 9MPC / FP98_700.ZIP / FOXPLAY.MRC < prev    next >
Text File  |  1998-08-01  |  14KB  |  467 lines

  1. ; Dorsola's FoxPlay 98 - mIRC interface script.
  2. ; Please refer to help documentation for more information.
  3. ; ==================
  4.  
  5. ON 1:START {
  6.   %fp_action = UpdateOptions $readini $mircini dde servicename
  7.   fp_startup
  8. }
  9.  
  10. ON 1:LOAD {
  11.   if $script(PM_GUI.MRC)   != $null { unload -rs PM_GUI.MRC }
  12.   if $script(PM_AUDIT.MRC) != $null { unload -rs PM_AUDIT.MRC }
  13.   if $script(FP_GUI.MRC)   != $null { unload -rs FP_GUI.MRC }
  14.   if $script(FP_AUDIT.MRC) != $null { unload -rs FP_AUDIT.MRC }
  15.   if $script(FP_MSYS.MRC)  != $null { unload -rs FP_MSYS.MRC }
  16.   
  17.   if %fp_version <= 6.22 { unset %fp* }
  18.   unset %fp_version
  19. }
  20.  
  21. alias fp_startup {
  22.   %fp_temptemp = $readini $mircini dde serverstatus
  23.   if %fp_temptemp != on { .ddeserver on }
  24.   
  25.   %fp_version = $dde FoxPlay version ""
  26.   if %fp_version == $null {
  27.     if %fp_exepath == $null { %fp_exepath = $dir="Where is foxplay.exe?" .\foxplay.exe }
  28.     if %fp_exepath == $null { halt }
  29.     
  30.     if %fp_action == $null { .run %fp_exepath $readini $mircini dde servicename }
  31.     else { .run -n %fp_exepath $readini $mircini dde servicename }
  32.   }
  33.   else {
  34.     fp_sendDDE setservicename $readini $mircini dde servicename
  35.     if %fp_action != $null { fp_sendDDE %fp_action }
  36.     unset %fp_action
  37.   }
  38. }
  39.  
  40. alias foxplay {
  41.   if $1 == $null { %fp_temp = NULL }
  42.   else { %fp_temp = $1- }
  43.   
  44.   %fp_action = foxplay %fp_temp
  45.   fp_startup
  46. }
  47.  
  48. alias repeat {
  49.   %fp_temp = $dde FoxPlay currentfile ""
  50.   if $1 isnum { queue_do %fp_temp $1 }
  51.   else { foxplay %fp_temp }
  52. }
  53.  
  54. alias desc {
  55.   %fp_temp = $dde FoxPlay reqInfoColor $$1-
  56.   
  57.   if %fp_temp == $null {
  58.     if $dde FoxPlay version "" != $null { echo -a 4*** (FoxPlay) No information available for $1- }
  59.     else { echo -a 4*** ERROR: FoxPlay must be running in order to retrieve any information about its files. }
  60.   }
  61.   else { /say $1- $+ : %fp_temp }
  62. }
  63.  
  64. alias fp_sendDDE dde FoxPlay $1 "" $2-
  65. alias fp_stop fp_sendDDE stop ""
  66. alias clearqueue fp_sendDDE clearqueue ""
  67.  
  68. alias fp_setDirIncomingDefault {
  69.   %fp_tempDir = $getdir
  70.   %fp_tempLen = $len(%fp_tempDir) - 1
  71.   fp_sendDDE SetDirIncoming %fp_tempLen %fp_tempDir
  72.   unset %fp_tempDir;
  73.   unset %fp_tempLen;
  74. }
  75.  
  76. alias queue_do {
  77.   %fp_servicename = $readini $mircini DDE ServiceName
  78.   %fp_temp_txt = $$1-
  79.   unset %fp_queuetemp
  80.   
  81.   :loop_queue
  82.   %fp_temp = $fp_getFName(%fp_temp_txt)
  83.   if %fp_temp == $null { goto end_queue }
  84.   
  85.   %fp_temptok = $gettok(%fp_temp,0,32) + 1
  86.   %fp_temp3 = %fp_temptok $+ -
  87.   %fp_temp_txt = $gettok(%fp_temp_txt,%fp_temp3,32)
  88.   
  89.   %fp_temp2 = $gettok(%fp_temp_txt,1,32)
  90.   
  91.   if %fp_temp2 isnum 1-999 {
  92.     %fp_temp_txt = $gettok(%fp_temp_txt,2-,32)
  93.     
  94.     %fp_temp3 = $chr(32)
  95.     fp_sendDDE queueRepeat %fp_servicename %fp_temp2 $replace(%fp_temp,%fp_temp3,)
  96.   }
  97.   else { fp_sendDDE queue %fp_servicename %fp_temp }
  98.   goto loop_queue
  99.   
  100.   :end_queue
  101.   fp_sendDDE queueDONE %fp_servicename
  102. }
  103.  
  104. alias fp_queuedone {
  105.   if %fp_queuetemp != $null {
  106.     %fp_queuetemp = $gettok(%fp_queuetemp,2-,32)
  107.     echo $1 7*** (FoxPlay) Added to queue: 12 $+ %fp_queuetemp $+ 
  108.     if %fp_doreq != $null { .notice %fp_doreq (FoxPlay) I've queued the following: %fp_queuetemp }
  109.   }
  110.   else if %fp_doreq == $null { echo $1 4*** (FoxPlay) No files were added to your queue. }
  111. }
  112.  
  113. alias clearcue clearqueue
  114. alias cue unset %fp_doreq | queue_do $1-
  115. alias queue unset %fp_doreq | queue_do $1-
  116. alias playmidi foxplay $1-
  117. alias stopmidi fp_stop
  118. alias foxstop fp_stop
  119.  
  120. alias fp_getFName {
  121.   unset %fp_temp
  122.   %fp_tempTnum = 0
  123.   %fp_tempTok = $false
  124.   
  125.   :loop_getFName
  126.   inc %fp_tempTnum
  127.   %fp_tempTtoken = $gettok( $1-, %fp_tempTnum, 32 )
  128.   
  129.   if %fp_tempTtoken == $null { goto end_getFName }
  130.   else {
  131.     %fp_temp = %fp_temp %fp_tempTtoken
  132.     
  133.     if . isin %fp_tempTtoken {
  134.       %fp_tempText = $right( %fp_temp, 4 )
  135.       %fp_tempText2 = $right( %fp_temp, 3 )
  136.       
  137.       if %fp_tempText isin .mid;.mod;.s3m;.mp3; || %fp_tempText2 isin .xm;.it {
  138.         %fp_tempTok = $true
  139.         goto end_getFName
  140.       }
  141.     }
  142.   }
  143.   goto loop_getFName
  144.   
  145.   :end_getFName
  146.   if %fp_tempTok == $false { unset %fp_temp }
  147.   unset %fp_tempT*
  148.   return %fp_temp
  149. }  
  150.  
  151. menu status,menubar,channel,query,system {
  152.   FoxPlay %fp_version
  153.   .$fpm_playing:fp_startup
  154.   .-
  155.   .Play $fpm_next_in_queue:foxplay
  156.   .$fpm_repeat:repeat
  157.   .Stop Playing:foxstop
  158.   .Clear Queue:clearqueue
  159.   .-
  160.   .General Options
  161.   ..Random-Pick Files $fpm_stat_remote(%fp_randomize):     fp_toggle_opt %fp_randomize randompick
  162.   ..Local Info Display $fpm_stat(%fp_localinfo):           fp_toggle_opt %fp_localinfo localdisplay
  163.   ..Remote-Control Mode $fpm_stat(%fp_rcmode):             fp_toggle_opt %fp_rcmode remotecontrol
  164.   ..Accept Jukebox-style requests $fpm_stat(%fp_acceptreq):fp_toggle_opt %fp_acceptreq acceptrequests
  165.   ..Broadcast in Color $fpm_stat(%fp_showcolor):           fp_toggle_opt %fp_showcolor showcolor
  166.   
  167.   .MIDI Options
  168.   ..Playback $fpm_stat(%fp_play_midi):      fp_toggle_opt %fp_play_midi play midis
  169.   ..Auto-Request $fpm_stat(%fp_areq_midi):  fp_toggle_opt %fp_areq_midi areq midis
  170.   ..Show to Public $fpm_stat(%fp_show_midi):fp_toggle_opt %fp_show_midi show midis
  171.   
  172.   .MOD Options
  173.   ..Playback $fpm_stat(%fp_play_mods):      fp_toggle_opt %fp_play_mods play mods
  174.   ..Auto-Request $fpm_stat(%fp_areq_mods):  fp_toggle_opt %fp_areq_mods areq mods
  175.   ..Show to Public $fpm_stat(%fp_show_mods):fp_toggle_opt %fp_show_mods show mods
  176.   
  177.   .MP3 Options
  178.   ..Playback $fpm_stat(%fp_play_mp3s):      fp_toggle_opt %fp_play_mp3s play mp3s
  179.   ..Auto-Request $fpm_stat(%fp_areq_mp3s):  fp_toggle_opt %fp_areq_mp3s areq mp3s
  180.   ..Show to Public $fpm_stat(%fp_show_mp3s):fp_toggle_opt %fp_show_mp3s show mp3s
  181.   .-
  182.   .Help
  183.   ..FoxPlay Help:run $scriptdir $+ foxplay.hlp
  184.   ..FoxPlay Homepage:run http://www.descent2.com/dorsola/fplay.htm
  185. }
  186.  
  187.  
  188. ; Aliases used with popup menu
  189. ; ============================
  190.  
  191. alias fp_toggle_opt {
  192.   %fp_servicename = $readini $mircini dde servicename
  193.   
  194.   if $1 { fp_sendDDE SetOption %fp_servicename $2- 0 }
  195.   else { fp_sendDDE SetOption %fp_servicename $2- 1 }
  196. }
  197.  
  198. alias fpm_playing {
  199.   %fp_temp = $dde FoxPlay PlayerState ""
  200.   if %fp_temp == $null { return Run FoxPlay.exe }
  201.   else { return %fp_temp }
  202. }
  203.  
  204. alias fpm_next_in_queue {
  205.   %fp_tempfile = $dde FoxPlay nextinqueue ""
  206.   if %fp_tempfile != $null { return next queued file: %fp_tempfile }
  207.   else { return a random file }
  208. }
  209.  
  210. alias fpm_repeat {
  211.   %fp_tempfile = $dde FoxPlay currentfile ""
  212.   if %fp_tempfile != $null { return Repeat %fp_tempfile }
  213. }
  214.  
  215. alias fpm_stat {
  216.   if $1 { return (ON) }
  217.   else { return (OFF) }
  218. }
  219.  
  220. alias fpm_stat_remote {
  221.   if %fp_rcmode { return (OFF) }
  222.   elseif $1 { return (ON) }
  223.   else { return (OFF) }
  224. }
  225.  
  226. ; Event triggers
  227. ; ==============
  228.  
  229. CTCP 1:VERSION:*:ctcpreply $nick SCRIPT Equipped with Dorsola's FoxPlay 98 %fp_version $+ !
  230.  
  231. alias fps_store {
  232.   if .wav !isin $1- {
  233.     %fps_file = $scriptdir $+ fp_files.ini
  234.     
  235.     %fps_line1 = $readini %fps_file $1 file1
  236.     %fps_line2 = $readini %fps_file $1 file2
  237.     %fps_line3 = $readini %fps_file $1 file3
  238.     %fps_line4 = $readini %fps_file $1 file4
  239.     %fps_line5 = $readini %fps_file $1 file5
  240.     
  241.     if %fps_line5 != $null {
  242.       writeini %fps_file $1 file1 %fps_line2
  243.       writeini %fps_file $1 file2 %fps_line3
  244.       writeini %fps_file $1 file3 %fps_line4
  245.       writeini %fps_file $1 file4 %fps_line5
  246.       writeini %fps_file $1 file5 $2-
  247.     }
  248.     elseif %fps_line1 == $null { writeini %fps_file $1 file1 $2- }
  249.     elseif %fps_line2 == $null { writeini %fps_file $1 file2 $2- }
  250.     elseif %fps_line3 == $null { writeini %fps_file $1 file3 $2- }
  251.     elseif %fps_line4 == $null { writeini %fps_file $1 file4 $2- }
  252.     else { writeini %fps_file $1 file5 $2- }
  253.   }
  254. }
  255.  
  256. CTCP 1:MP3:* {
  257.   %fp_tempfile = $fp_getFName( $2- )
  258.   if %fp_lastnick != $nick && %fp_lastfile != %fp_tempfile { 
  259.     %fp_servicename = $readini $mircini DDE servicename
  260.     fp_sendDDE ctcpsound %fp_servicename $nick %fp_tempfile
  261.   }
  262.   
  263.   %fp_lastnick = $nick
  264.   %fp_lastfile = %fp_tempfile
  265.   fps_store $nick %fp_tempfile
  266.   
  267.   if $chan != $null { echo 7 $chan ( $+ MP3: $nick %fp_tempfile $+ ) }
  268.   else { echo 7 -a ( $+ MP3: $nick %fp_tempfile $+ ) }
  269.   halt
  270. }  
  271.  
  272. CTCP 1:SOUND:* {
  273.   %fp_tempfile = $fp_getFName( $2- )
  274.   if %fp_tempfile != $null {
  275.     if %fp_lastnick != $nick || %fp_lastfile != %fp_tempfile {
  276.       %fp_servicename = $readini $mircini DDE servicename
  277.       fp_sendDDE ctcpsound %fp_servicename $nick %fp_tempfile
  278.     }
  279.     
  280.     %fp_lastnick = $nick
  281.     %fp_lastfile = %fp_tempfile
  282.     fps_store $nick %fp_tempfile
  283.     
  284.     if $chan != $null { echo 7 $chan ( $+ SOUND: $nick %fp_tempfile $+ ) }
  285.     else { echo 7 -a ( $+ SOUND: $nick %fp_tempfile $+ ) }
  286.     halt
  287.   }
  288. }
  289.  
  290. on 1:TEXT:*!*:* {
  291.   %fp_tempfile = $fp_getFName( $2- )
  292.   
  293.   if %fp_tempfile != $null {
  294.     if $1 == ! $+ $me {
  295.       if .wav !isin %fp_tempfile {
  296.         %fp_tempC = $chr(32)
  297.         %fp_temppath = $dde foxplay getPath $replace(%fp_tempfile,%fp_tempC,)
  298.         if %fp_temppath != $null { dcc send $nick " $+ %fp_temppath $+ " }
  299.         halt
  300.       }
  301.     }
  302.     elseif $1 == !request && %fp_acceptreq {
  303.       set %fp_doreq $nick
  304.       queue_do $2-
  305.     }
  306.   }
  307.   unset %fp_temp*
  308. }
  309.  
  310. ON 1:FILERCVD:*.mid,*.mod,*.s3m,*.xm,*.it,*.mp3 {
  311.   %fp_dirIncoming = $fp_checkIncomingDir
  312.   if $filename != %fp_dirIncoming $+ \ $+ $nopath($filename) {
  313.     .rename $filename " $+ %fp_dirIncoming $+ \ $+ $nopath($filename) $+ "
  314.   }
  315. }
  316.  
  317. ON 1:FILESENT:*.mid,*.mod,*.s3m,*.xm,*.it,*.mp3 {
  318.   %fp_temp = $chr(32)
  319.   %fp_temp = $dde FoxPlay reqInfoFPL $replace($nopath($filename),%fp_temp,)
  320.   if %fp_temp != $null {
  321.     %fp_tempC = $chr(32)
  322.     .timer 1 3 .ctcp $nick FP98_FILEINFO $replace($nopath($filename),%fp_tempC,_) %fp_temp
  323.   }
  324. }
  325.  
  326. alias fp_checkIncomingDir {
  327.   if %fp_dirIncoming == $null {
  328.     %fp_dirIncoming = $getdir
  329.     %fp_templen = $len(%fp_dirIncoming) - 1
  330.     %fp_dirIncoming = $left(%fp_dirIncoming, %fp_templen)
  331.   }
  332.   return %fp_dirIncoming
  333. }
  334.  
  335. CTCP 1:FP98_FILEINFO:? {
  336.   ; remote FP98 sent me a file and is now sending info on it.
  337.   ; Aggressive approach allows for spaced filenames.
  338.   
  339.   if $3 == $null { halt }
  340.   
  341.   %fp_temp_file = $fp_getFName( $3- )
  342.   
  343.   if %fp_temp_file != $null {
  344.     %fp_dirIncoming = $fp_checkIncomingDir
  345.     if %fp_temp_file != $2 { .rename " $+ %fp_dirIncoming $+ \ $+ $2 $+ " " $+ %fp_dirIncoming $+ \ $+ %fp_temp_file $+ " }
  346.     write " $+ %fp_dirIncoming $+ \ $+ fp_new.fpi" $3-
  347.   }
  348.   halt
  349. }
  350.  
  351. CTCP 1:FP98_USERINFOREQ:? {
  352.   ; remote FP98 user requests info about a file.
  353.   ; File 1 = local filename
  354.   ; File 2 = remote filename
  355.   
  356.   if $3 == $null { halt }
  357.   
  358.   %fp_tempfile = $fp_getFName( $2- )
  359.   if %fp_tempfile != $null {
  360.     %fp_templen1 = $len(%fp_tempfile) + 1
  361.     %fp_templen2 = $mid($2-, %fp_templen1, 0)
  362.     %fp_tempfile2 = $fp_getFName( $mid( $2-, %fp_templen1, %fp_templen2 ) )
  363.     
  364.     if %fp_tempfile2 != $null {
  365.       %fp_servicename = $readini $mircini dde servicename
  366.       fp_sendDDE UserInfoReq %fp_servicename $nick $replace(%fp_tempfile,32,127) $replace(%fp_tempfile2,32,127)
  367.     }
  368.   }
  369.   unset %fp_temp*
  370.   halt
  371.  
  372. ON 1:CTCPREPLY:FP98_USERINFOREQ* {
  373.   fp_sendDDE Suggestion $readini $mircini dde servicename $nick $2-
  374.   halt
  375. }
  376.  
  377. ON 1:NICK {
  378.   %fps_file = $scriptdir $+ fp_files.ini
  379.   
  380.   %fps_line1 = $readini %fps_file $nick file1
  381.   %fps_line2 = $readini %fps_file $nick file2
  382.   %fps_line3 = $readini %fps_file $nick file3
  383.   %fps_line4 = $readini %fps_file $nick file4
  384.   %fps_line5 = $readini %fps_file $nick file5
  385.   
  386.   if %fps_line1 != $null { writeini %fps_file $newnick file1 %fps_line1 }
  387.   if %fps_line2 != $null { writeini %fps_file $newnick file2 %fps_line2 }
  388.   if %fps_line3 != $null { writeini %fps_file $newnick file3 %fps_line3 }
  389.   if %fps_line4 != $null { writeini %fps_file $newnick file4 %fps_line4 }
  390.   if %fps_line5 != $null { writeini %fps_file $newnick file5 %fps_line5 }
  391.   remini %fps_file $nick
  392. }
  393.  
  394. alias fps_filename {
  395.   %fps_file = $scriptdir $+ fp_files.ini
  396.   %fps_temp = file $+ $2
  397.   %fps_temp2 = $readini %fps_file $1 %fps_temp
  398.   if %fps_temp2 == $null { return }
  399.   else { return %fps_temp2 }
  400. }
  401.  
  402. alias fps_manreq .msg $1 ! $+ $1 $fps_filename($1,$2) 12(FoxPlay Manual Request)
  403.  
  404. alias fps_inforeq {
  405.   %fps_file = $fps_filename($1,$2)
  406.   
  407.   %fps_temp = $chr(32)
  408.   %fps_temp = $dde FoxPlay reqInfoFPL $replace(%fps_file,%fps_temp,)
  409.   
  410.   if %fps_temp != $null { 
  411.     .ctcp $1 FP98_USERINFOREQ %fps_file %fps_file
  412.     echo -a 10*** Requested info from $1 about %fps_file $+ 
  413.   }
  414.   else { echo -a 4*** ERROR: %fps_file is not in your playlist! }
  415.   unset %fps*
  416. }
  417.  
  418. alias fps_sendsugg {
  419.   %fps_file = $fps_filename($1,$2)
  420.   
  421.   %fps_temp2 = $chr(32)
  422.   %fps_temp = $dde FoxPlay reqInfoFPL $replace(%fps_file,%fps_temp2,)
  423.   
  424.   if %fps_temp != $null { 
  425.     .ctcpreply $1 FP98_USERINFOREQ %fps_temp
  426.     echo -a *** Sent info about %fps_file $+ : $dde FoxPlay reqInfoColor $replace(%fps_file,%fps_temp2,)
  427.   }
  428.   else { echo -a 4*** ERROR: %fps_file is not in your playlist! }
  429. }
  430.  
  431. menu nicklist {
  432.   FoxPlay %fp_version
  433.   .$fps_filename($snick($chan,1),5)
  434.   ..Request this file:fps_manreq $1 5
  435.   ..-
  436.   ..Request info for my copy of this file:fps_inforeq $1 5
  437.   ..Suggest info from my copy:fps_sendsugg $1 5
  438.   
  439.   .$fps_filename($snick($chan,1),4)
  440.   ..Request this file:fps_manreq $1 4
  441.   ..-
  442.   ..Request info for my copy of this file:fps_inforeq $1 4
  443.   ..Suggest info from my copy:fps_sendsugg $1 4
  444.   
  445.   .$fps_filename($snick($chan,1),3)
  446.   ..Request this file:fps_manreq $1 3
  447.   ..-
  448.   ..Request info for my copy of this file:fps_inforeq $1 3
  449.   ..Suggest info from my copy:fps_sendsugg $1 3
  450.   
  451.   .$fps_filename($snick($chan,1),2)
  452.   ..Request this file:fps_manreq $1 2
  453.   ..-
  454.   ..Request info for my copy of this file:fps_inforeq $1 2
  455.   ..Suggest info from my copy:fps_sendsugg $1 2
  456.   
  457.   .$fps_filename($snick($chan,1),1)
  458.   ..Request this file:fps_manreq $1 1
  459.   ..-
  460.   ..Request info for my copy of this file:fps_inforeq $1 1
  461.   ..Suggest info from my copy:fps_sendsugg $1 1
  462.   
  463.   .-
  464.   .Send a file...:dcc send $snick($chan,1) $dir="Choose file to send..." *.mid;*.mod;*.s3m;*.xm;*.it;*.mp3
  465. }
  466.