docs: def main(params=None):
      """
      Main function to launch phonefy.
  
      The function is created in this way so as to let other applications make
      use of the full configuration capabilities of the application. The
      parameters received are used as parsed by this modules `getParser()`.
  
      Args:
      -----
          params: A list with the parameters as grabbed by the terminal. It is
              None when this is called by an entry_point. If it is called by osrf
              the data is already parsed.
  
      Results:
      --------
          list: Returns a list with i3visio entities.
      """
      if params == None:
          parser = getParser()
          args = parser.parse_args(params)
      else:
          args = params
  
      results = []
      if not args.quiet:
          print(general.title(banner.text))
  
          sayingHello = """
       Checkfy | Copyright (C) Yaiza Rubio & Félix Brezo (i3visio) 2014-2018
  
  This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you
  are welcome to redistribute it under certain conditions. For additional info,
  visit <{}>.
  """.format(general.LICENSE_URL)
      print(general.info(sayingHello))
  
      if args.license:
          general.showLicense()
      else:
          # Processing the options returned to remove the "all" option
          if args.nicks:
              emails = createEmails(nicks=args.nicks)
          else:
              # nicks_file
              emails = createEmails(nicksFile=args.nicks_file)
  
          # Showing the execution time...
          if not args.quiet:
              startTime= dt.datetime.now()
              print(str(startTime) + "\tTrying to identify possible emails " + general.emphasis(str(len(emails))) + " email(s)... Relax!\n")
              print(general.emphasis("\tPress <Ctrl + C> to stop...\n"))
  
          print(args.pattern)
          if args.type == "twitter":
              pattern = args.pattern.replace(".", "\.")
              pattern = pattern.replace("*", ".")
              pattern = "^{}$".format(pattern)
          elif args.type == "regexp":
              pattern = args.pattern
  
          # Perform searches, using different Threads
          results = verifyEmails(emails, pattern)
  
          # Sorting list
          results.sort()
          print("\nProcess finished.")
          print("\nValidated emails:\n")
          print(general.success(json.dumps(results, indent=2, sort_keys=True)))
          print("\nUp to " + general.emphasis(str(len(results))) + " possible emails foundd.\n")
  
  
          # Trying to store the information recovered
          if args.output_folder != None:
              if not os.path.exists(args.output_folder):
                  os.makedirs(args.output_folder)
  
              outputPath = os.path.join(args.output_folder, "possible_emails.txt")
  
              print("Writing the results onto the file:\n\t" + general.emphasis(outputPath))
  
              with open(outputPath, "w") as oF:
                  for r in results:
                      oF.write(r+"\n")
  
          # Showing the execution time...
          if not args.quiet:
              # Showing the execution time...
              endTime= dt.datetime.now()
              print("\n" + str(endTime) +"\tFinishing execution...\n")
              print("Total time used:\t" + general.emphasis(str(endTime-startTime)))
              print("Average seconds/query:\t" + general.emphasis(str((endTime-startTime).total_seconds()/len(emails))) +" seconds\n")
  
              # Urging users to place an issue on Github...
              print(banner.footer)
  
      if params:
          return results