Opened on 04/15/2016 at 02:00:59 PM

Closed on 11/10/2017 at 11:17:30 AM

#3943 closed change (rejected)

Configuration file for abpcrawler

Reported by: sergz Assignee: sergz
Priority: Unknown Milestone:
Module: Extensions-for-Adblock-Plus Keywords: abpcrawler
Cc: trev, fhd, TobiasHilleke, philll, tschuster Blocked By:
Blocking: Platform: Unknown / Cross platform
Ready: no Confidential: no
Tester: Unknown Verified working: no
Review URL(s):

https://codereview.adblockplus.org/29356103/

Description

Background

Currently we can configure

  • path to file with URLs
  • subscription URLs or path on the file system
  • output directory
  • maximum number of simultaneously opened tabs
  • timeout to stop waiting for the finishing of the page loading
  • path to firefox executable

Taking into account at least #3940 and #3941 it seems we need an option to read parameters from a configuration file.

What to change

Before we start to add the support of it we should agree on the format of the config file.

Attachments (0)

Change History (6)

comment:1 Changed on 04/15/2016 at 03:22:49 PM by trev

First of all, it would be nice if the config file would simply mirror command line parameters - so specifying a config file would simply replace a bunch of command line parameters. This has the advantage that things don't need to be documented twice, it's the same interface both via command line and config file.

As to the format, I guess that JSON makes the most sense:

{
  "binary": "/usr/bin/firefox",
  "abpdir": "/foo/bar/adblockplus",
  "filters": ["https://easylist-downloads.adblockplus.org/easylist.txt"],
  "timeout": 20
}

I'd normally suggest a format with less syntactical overhead but XML is worse syntax-wise and the INI format (via ConfigParser) requires section headers which don't make sense here. YAML might be a good option but it isn't supported by Python natively.

See https://martin-thoma.com/configuration-files-in-python/ for a seemingly complete overview.

comment:2 follow-up: Changed on 04/15/2016 at 03:41:41 PM by sergz

I completely agree with using of JSON and long-named command line parameters as properties.

Merely would like to precise a couple of details:

  • path to config file is specified by special command line parameter (e.g. -c --config)
  • config file cannot reference another config file
  • parameters passed through the command line in addition to config file override the values from config file

comment:3 in reply to: ↑ 2 Changed on 04/15/2016 at 03:54:36 PM by trev

Replying to sergz:

  • path to config file is specified by special command line parameter (e.g. -c --config)

Yes, -c and --config is what you usually have.

  • config file cannot reference another config file

Of course not, config file can only be specified on the command line.

  • parameters passed through the command line in addition to config file override the values from config file

Yes, command line parameters take precedence.

comment:4 Changed on 10/06/2016 at 01:09:51 PM by sergz

  • Review URL(s) modified (diff)
  • Status changed from new to reviewing

comment:5 Changed on 10/06/2016 at 01:09:59 PM by sergz

  • Owner set to sergz

comment:6 Changed on 11/10/2017 at 11:17:30 AM by trev

  • Resolution set to rejected
  • Status changed from reviewing to closed

Mass-closing all bugs in the Extensions for Adblock Plus module, these extensions no longer work as of Adblock Plus 3.0 / Firefox 57.

Add Comment

Modify Ticket

Change Properties
Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from sergz.
 
Note: See TracTickets for help on using tickets.