aboutsummaryrefslogtreecommitdiff
path: root/reader/subscription/finder.go
diff options
context:
space:
mode:
authorGravatar Gabriel Augendre <gabriel@augendre.info> 2020-06-16 22:52:20 +0200
committerGravatar Frédéric Guillot <fred@miniflux.net> 2020-06-21 20:34:59 -0700
commite44b4b254036350a2a8e33c68caaf368f13a45b8 (patch)
tree17eb800d621a2f955ce8d19d9d46cfb57eb6518b /reader/subscription/finder.go
parent248cb383902538afaf0e16d2d088122a86cd169a (diff)
downloadv2-e44b4b254036350a2a8e33c68caaf368f13a45b8.tar.gz
v2-e44b4b254036350a2a8e33c68caaf368f13a45b8.tar.zst
v2-e44b4b254036350a2a8e33c68caaf368f13a45b8.zip
Try known urls if no link alternate
I came across a few blogs that didn't have a link rel alternate but offered a RSS/Atom feed. This aims at solving this issue for "well known" feed urls, since these urls are often the same.
Diffstat (limited to '')
-rw-r--r--reader/subscription/finder.go47
1 files changed, 46 insertions, 1 deletions
diff --git a/reader/subscription/finder.go b/reader/subscription/finder.go
index 66bbedd2..ab94b807 100644
--- a/reader/subscription/finder.go
+++ b/reader/subscription/finder.go
@@ -43,7 +43,11 @@ func FindSubscriptions(websiteURL, userAgent, username, password string) (Subscr
return subscriptions, nil
}
- return parseDocument(response.EffectiveURL, strings.NewReader(body))
+ subscriptions, err := parseDocument(response.EffectiveURL, strings.NewReader(body))
+ if err != nil || subscriptions != nil {
+ return subscriptions, err
+ }
+ return tryWellKnownUrls(websiteURL, userAgent, username, password)
}
func parseDocument(websiteURL string, data io.Reader) (Subscriptions, *errors.LocalizedError) {
@@ -86,3 +90,44 @@ func parseDocument(websiteURL string, data io.Reader) (Subscriptions, *errors.Lo
return subscriptions, nil
}
+
+func tryWellKnownUrls(websiteURL, userAgent, username, password string) (Subscriptions, *errors.LocalizedError) {
+ var subscriptions Subscriptions
+ knownURLs := map[string]string{
+ "/atom.xml": "atom",
+ "/feed.xml": "atom",
+ "/feed/": "atom",
+ "/rss.xml": "rss",
+ }
+
+ lastCharacter := websiteURL[len(websiteURL)-1:]
+ if lastCharacter == "/" {
+ websiteURL = websiteURL[:len(websiteURL)-1]
+ }
+
+ for knownURL, kind := range knownURLs {
+ fullURL, err := url.AbsoluteURL(websiteURL, knownURL)
+ if err != nil {
+ continue
+ }
+ request := client.New(fullURL)
+ request.WithCredentials(username, password)
+ request.WithUserAgent(userAgent)
+ response, err := request.Get()
+ if err != nil {
+ continue
+ }
+
+ if response != nil && response.StatusCode == 200 {
+ subscription := new(Subscription)
+ subscription.Type = kind
+ subscription.Title = fullURL
+ subscription.URL = fullURL
+ if subscription.URL != "" {
+ subscriptions = append(subscriptions, subscription)
+ }
+ }
+ }
+
+ return subscriptions, nil
+}
value='jarred/tcc'>jarred/tcc Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/node/dir_iterator.zig (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2022-01-19`fs.*Sync()`, `bun wiptest`, and More ™ (#106)Gravatar Jarred Sumner 1-0/+347
2022-01-05Fix bug preventing multiple framework overridesGravatar Jarred Sumner 1-2/+3
2022-01-05Reduce memory usageGravatar Jarred Sumner 1-2/+2
2022-01-05Fix crash that sometimes happens after 30 secondsGravatar Jarred Sumner 5-106/+185
2022-01-05[bun bun][bun dev] Fix crash affecting large projectsGravatar Jarred Sumner 1-26/+119
2022-01-05move some code aroundGravatar Jarred Sumner 2-281/+284
2022-01-05we want the opposite of thisGravatar Jarred Sumner 1-1/+0
2022-01-05[JS Parser] Reduce memory usage by ~8%Gravatar Jarred Sumner 6-7/+42
2022-01-05minimal integration tests for macrosGravatar Jarred Sumner 4-0/+47
2022-01-05Update resolver.zigGravatar Jarred Sumner 1-3/+0
2022-01-05Update options.zigGravatar Jarred Sumner 1-2/+25
2022-01-05Update http.zigGravatar Jarred Sumner 1-1/+1
2022-01-05Add module condition to the node platform (#104)Gravatar Mateusz Burzyński 1-1/+4
2022-01-05Drop redundant comments (#103)Gravatar Mateusz Burzyński 1-23/+0
2022-01-05Tweak default main fields for the bun platform to match other popular bundler...Gravatar Mateusz Burzyński 1-10/+7
2022-01-04:skull: dead codeGravatar Jarred Sumner 1-13/+0
2022-01-04[bun dev] Print error in status line textGravatar Jarred Sumner 1-3/+13
2022-01-04noramlize some errorsGravatar Jarred Sumner 3-3/+4
2022-01-04[Bun.js][bun dev] Support macros inside of Bun.jsGravatar Jarred Sumner 5-51/+103
2022-01-04[bun bun] Fix error when regenerating node_modules.bun after moving itGravatar Jarred Sumner 1-1/+17
2022-01-04Improve how we detect if terminal colors are supportedGravatar Jarred Sumner 3-11/+66
2022-01-04Improve error handling when out of file handlesGravatar Jarred Sumner 5-58/+248
2022-01-04Update build-idGravatar Jarred Sumner 1-1/+1
2022-01-04Downgrade mimalloc due to crashesGravatar Jarred Sumner 1-0/+0
2022-01-04Upload compressed `.dSYM` for every releaseGravatar Jarred Sumner 2-4/+34
2022-01-04Update .gitignoreGravatar Jarred Sumner 1-0/+3
2022-01-04[bun install] Fix more cases where bytes are printed instead of stringsGravatar Jarred Sumner 1-10/+38
2022-01-04minor perf optimization: remove this loop on macOSGravatar Jarred Sumner 2-4/+8
2022-01-03Update crash_reporter_linux.zigbun-v0.0.66Gravatar Jarred Sumner 1-1/+1
2022-01-03:confused:Gravatar Jarred Sumner 5-0/+1
2022-01-03:nail_care:Gravatar Jarred Sumner 3-1652/+1826
2022-01-03Update crash_reporter_linux.zigGravatar Jarred Sumner 1-1/+1
2022-01-03Update PLCrashReport.mGravatar Jarred Sumner 1-1/+1
2022-01-03Update PLCrashReport.mGravatar Jarred Sumner 1-2/+1
2022-01-03:lock:Gravatar Jarred Sumner 4-1/+1
2022-01-03dead codeGravatar Jarred Sumner 13-1881/+1660