add timeout flag to refresh

This commit is contained in:
nytpu
2021-03-23 08:12:53 -06:00
parent 9549e569f9
commit 2cd16124f8
4 changed files with 20 additions and 3 deletions
+1
View File
@@ -56,6 +56,7 @@ func main() {
switch os.Args[1] {
case "refresh":
argCheck(c.Args(), 0, false, "'refresh' doesn't take an argument!")
core.Timeout = *refreshTimeoutFlag
fetch.RefreshAll(&core.Data, *refreshWorkersFlag)
case "regenerate":
argCheck(c.Args(), 0, false, "'regenerate' doesn't take an argument!")
+6 -1
View File
@@ -28,10 +28,13 @@ var Data = FullData{
// Maps are created in init()
}
// the header of feeds.gmi.
// the Header of feeds.gmi.
// set in Init, either to the contents of header.gmi or to the default string
var Header string
// Timeout for requests
var Timeout int
// have to do this instead of the automatically called init() because
// initialization stuff requires parsing of command line args first
func Init(dataPath string) error {
@@ -88,6 +91,8 @@ func Init(dataPath string) error {
`
}
Timeout = 10
return nil
}
+8 -2
View File
@@ -33,7 +33,7 @@ variety of feed formats:
automatically picked depending on the feed type. For Gemini feeds, the
first heading on a page is used as a title. For ATOM, RSS, and JSON feeds,
the provided title is used. For a page being watched for changes, the URL
itself is used.
itself is used. Use *-w* to watch a page for changes.
Also to note: when adding a new subscription, you *do not* need to run
*refresh* afterwards, *add* will automatically fetch the entries and
regenerate the .gmi and .json files.
@@ -68,6 +68,10 @@ command-specific flags that are not universally recognized.
the servers you're hitting and to other people on your network. Defaults to
5.
*-t* _NUM_, *--timeout* _NUM_
Set a timeout for requests, in seconds. Defaults to 10 seconds per
request.
## ADD FLAGS
*-w*, *--watch*
@@ -115,7 +119,9 @@ Within the data directory, the following files are used:
*header.gmi*
This file is neither created nor modified by comitium. If it exists and is
nonempty, then it is read and used as custom header for *feed.gmi*. If it
doesn't exist or is empty, then a default header is used.
doesn't exist or is empty, then a default header is used. The generated
contents of *feed.gmi* will be appended to the contents of *header.gmi*
separated by one newline.
*feed.gmi*
The outputted text/gemini file containing the subscription items. Is what
+5
View File
@@ -52,6 +52,11 @@ var (
`Number of worker threads to use when refreshing feeds. More is faster,
but there are more concurrent outgoing requests then.`,
)
refreshTimeoutFlag = commands["refresh"].IntP(
"timeout", "t",
10,
`Set a timeout for requests, in seconds.`,
)
// remove
removeFeedsFlag = commands["remove"].BoolP(