Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • dailybuild_linux-x64
  • dailybuild_win32
  • sqlite
  • rip_abstraction
  • dailybuild_macos-armv8
  • dd_file_lister_filanem_in_desc_color
  • mode7
  • dd_msg_reader_are_you_there_warning_improvement
  • c23-playing
  • syncterm-1.3
  • syncterm-1.2
  • test-build
  • hide_remote_connection_with_telgate
  • 638-can-t-control-c-during-a-file-search
  • add_body_to_pager_email
  • mingw32-build
  • cryptlib-3.4.7
  • ree/mastermind
  • new_user_dat
  • sbbs320d
  • syncterm-1.6
  • syncterm-1.5
  • syncterm-1.4
  • sbbs320b
  • syncterm-1.3
  • syncterm-1.2
  • syncterm-1.2rc6
  • syncterm-1.2rc5
  • push
  • syncterm-1.2rc4
  • syncterm-1.2rc2
  • syncterm-1.2rc1
  • sbbs319b
  • sbbs318b
  • goodbuild_linux-x64_Sep-01-2020
  • goodbuild_win32_Sep-01-2020
  • goodbuild_linux-x64_Aug-31-2020
  • goodbuild_win32_Aug-31-2020
  • goodbuild_win32_Aug-30-2020
40 results

freqit.js

Blame
  • freqit.js 1.65 KiB
    // $Id: freqit.js,v 1.6 2016/01/19 06:58:36 deuce Exp $
    /*
     * Intentionally simple FREQ processor.
     * Configure in binkd with the line:
     * exec "/sbbs/exec/jsexec freqit *S" *.req *.REQ
     */
    
    load("fidocfg.js");
    load("freqit_common.js");
    
    FREQIT.add_file = function(filename, resp, cfg)
    {
    	if (filename === undefined)
    		return;
    	if (FREQIT.files >= cfg.maxfiles)
    		return;
    	if (FREQIT.added[filename] !== undefined)
    		return;
    	resp.writeln('+'+filename);
    	FREQIT.files++;
    	FREQIT.added[filename]='';
    };
    
    function parse_srif(fname)
    {
    	var f=new File(fname);
    	var srif={};
    	var l;
    	var m;
    
    	if (!f.open("r")) {
    		log(LOG_ERROR, "Unable to find SRIF file '"+f.name+"'");
    		return undefined;
    	}
    	while((l = f.readln(65535))) {
    		if ((m=l.match(/^\s*([^ ]+)\s+(.*)$/)) !== null)
    			srif[m[1].toLowerCase()] = m[2];
    	}
    	f.close();
    	return srif;
    }
    
    function handle_srif(srif)
    {
    	var req=new File(srif.requestlist);
    	var resp=new File(srif.responselist);
    	var m;
    	var fname;
    	var pw;
    	var cfg = new FREQITCfg();
    
    	if (!req.open("r"))
    		return;
    	if (!resp.open("a"))
    		return;
    	resp.position = resp.length;
    
    	next_file:
    	while((fname=req.readln())) {
    		if ((m=fname.match(/^(.*) !(.*?)$/))!==null) {
    			pw=m[2];
    			fname=m[1];
    		}
    		// First, check for magic!
    		for (m in cfg.magic) {
    			if (m == fname.toLowerCase()) {
    				FREQIT.handle_magic(cfg.magic[m], resp, srif.remotestatus.toLowerCase() === 'protected', pw, cfg);
    				continue next_file;
    			}
    		}
    
    		// Now, check for the file...
    		FREQIT.handle_regular(fname, resp, srif.remotestatus.toLowerCase() === 'protected', pw, cfg);
    	}
    }
    
    argv.forEach(function(fname) {
    	var srif = parse_srif(fname);
    
    	if (srif !== undefined)
    		handle_srif(srif);
    });