code: def file_filter(ifn: str, indir: str, opts: Namespace) -> bool:
      
      # If it looks like we're processing a URL as an input file, skip the suffix check
      if '://' in ifn:
          return True
  
      if not ifn.endswith('.json'):
          return False
  
      if indir and (indir.startswith("_") or "/_" in indir or any(dn in indir for dn in opts.skipdirs)):
          return False
  
      if opts.skipfns and any(sfn in ifn for sfn in opts.skipfns):
          return False
  
      infile = os.path.join(indir, ifn)
      if not opts.infile and opts.maxsize and os.path.getsize(infile) > (opts.maxsize * 1000):
          return False
  
      return True
docs: Determine whether to process ifn.  We con't process:
          1) Anything in a directory having a path element that begins with "_"
          2) Really, really big files
          3) Temporary lists of know errors
      :param ifn: input file name
      :param indir: input directory
      :param opts: argparse options
      :return: True if to be processed, false if to be skipped