Skip to content

Commit 8398f81

Browse files
committed
attempt to fix #139
1 parent f58be3c commit 8398f81

File tree

8 files changed

+41
-6
lines changed

8 files changed

+41
-6
lines changed

Assets/css/Admin.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/css/Admin.css.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Sources/SwiftinitServer/Server/Swiftinit.ClientAnnotation.Robot.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ extension Swiftinit.ClientAnnotation
1919

2020
/// Amazon CloudFront.
2121
case cloudfront
22+
23+
case discoursebot
24+
2225
/// Crawler belonging to DuckDuckGo, an American search engine. Only the favicon
2326
/// bot is active today.
2427
case duckduckbot

Sources/SwiftinitServer/Server/Swiftinit.ClientAnnotation.swift

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ extension Swiftinit.ClientAnnotation
3636
case .robot(.bingbot): \.verifiedBingbot
3737
case .robot(.cloudfront): \.tooling
3838
case .robot(.bytespider): \.otherRobot
39+
case .robot(.discoursebot): \.likelyDiscoursebot
3940
case .robot(.duckduckbot): \.likelyMinorSearchEngine
4041
case .robot(.google): \.otherRobot
4142
case .robot(.googlebot): \.verifiedGooglebot
@@ -63,7 +64,24 @@ extension Swiftinit.ClientAnnotation
6364
}
6465

6566
guard
66-
let agent:String = headers.userAgent,
67+
let agent:String = headers.userAgent
68+
else
69+
{
70+
return .robot(.tool)
71+
}
72+
73+
if case "*"? = headers.acceptLanguage,
74+
agent == """
75+
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) \
76+
AppleWebKit/605.1.15 (KHTML, like Gecko) \
77+
Version/14.0 Safari/605.1.15
78+
"""
79+
{
80+
// This is *probably* the Swift Forums bot.
81+
return .robot(.discoursebot)
82+
}
83+
84+
guard
6785
let agent:UA = .init(agent)
6886
else
6987
{

Sources/SwiftinitServer/Swiftinit.IntegralRequest.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ extension Swiftinit.IntegralRequest:HTTP.ServerIntegralRequest
5454
case .robot(.bingbot): break
5555
case .robot(.bytespider): return nil
5656
case .robot(.cloudfront): break
57+
case .robot(.discoursebot): break
5758
case .robot(.duckduckbot): break
5859
case .robot(.google): break
5960
case .robot(.googlebot): break

Sources/UnidocProfiling/Breakdowns/ServerProfile.ByClient.SectorKey.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ extension ServerProfile.ByClient
99
case likelyYandexbot
1010
case likelyMinorSearchEngine
1111
case likelyAhrefsbot
12+
case likelyDiscoursebot
1213
case otherRobot
1314
case tooling
1415
case barbie
@@ -28,6 +29,7 @@ extension ServerProfile.ByClient.SectorKey:Identifiable
2829
case .likelyYandexbot: "yandexbot"
2930
case .likelyMinorSearchEngine: "minor-search-engine"
3031
case .likelyAhrefsbot: "ahrefsbot"
32+
case .likelyDiscoursebot: "discoursebot"
3133
case .otherRobot: "robot"
3234
case .tooling: "tooling"
3335
case .barbie: "barbie"
@@ -46,9 +48,10 @@ extension ServerProfile.ByClient.SectorKey:PieSectorKey
4648
case .verifiedBingbot: "Bingbots (Verified)"
4749
case .likelyBaiduspider: "Baiduspiders"
4850
case .likelyYandexbot: "Yandexbots"
49-
case .likelyMinorSearchEngine: "Minor Search Engines"
51+
case .likelyMinorSearchEngine: "Minor search engines"
5052
case .likelyAhrefsbot: "Ahrefsbots"
51-
case .otherRobot: "Other Robots"
53+
case .likelyDiscoursebot: "Discourse forums"
54+
case .otherRobot: "Other robots"
5255
case .tooling: "Tooling"
5356
case .barbie: "Barbies"
5457
case .bratz: "Bratz"

Sources/UnidocProfiling/Breakdowns/ServerProfile.ByClient.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ extension ServerProfile
1818
public
1919
var likelyAhrefsbot:Int
2020
public
21+
var likelyDiscoursebot:Int
22+
public
2123
var otherRobot:Int
2224
public
2325
var tooling:Int
@@ -34,6 +36,7 @@ extension ServerProfile
3436
likelyYandexbot:Int = 0,
3537
likelyMinorSearchEngine:Int = 0,
3638
likelyAhrefsbot:Int = 0,
39+
likelyDiscoursebot:Int = 0,
3740
otherRobot:Int = 0,
3841
tooling:Int = 0,
3942
barbie:Int = 0,
@@ -45,6 +48,7 @@ extension ServerProfile
4548
self.likelyYandexbot = likelyYandexbot
4649
self.likelyMinorSearchEngine = likelyMinorSearchEngine
4750
self.likelyAhrefsbot = likelyAhrefsbot
51+
self.likelyDiscoursebot = likelyDiscoursebot
4852
self.otherRobot = otherRobot
4953
self.tooling = tooling
5054
self.barbie = barbie
@@ -72,6 +76,7 @@ extension ServerProfile.ByClient
7276
+ self.likelyYandexbot
7377
+ self.likelyMinorSearchEngine
7478
+ self.likelyAhrefsbot
79+
+ self.likelyDiscoursebot
7580
+ self.otherRobot
7681
+ self.tooling
7782
+ self.barbie
@@ -89,6 +94,7 @@ extension ServerProfile.ByClient:PieValues
8994
.likelyBaiduspider: self.likelyBaiduspider,
9095
.likelyYandexbot: self.likelyYandexbot,
9196
.likelyMinorSearchEngine: self.likelyMinorSearchEngine,
97+
.likelyDiscoursebot: self.likelyDiscoursebot,
9298
.barbie: self.barbie,
9399
.bratz: self.bratz,
94100
.likelyAhrefsbot: self.likelyAhrefsbot,

Stylesheets/Admin.scss

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ nav.admin
3030
}
3131
}
3232

33-
figure.client div.pie-color > svg g
33+
figure.client svg > g
3434
{
3535
> *.googlebot
3636
{
@@ -52,6 +52,10 @@ figure.client div.pie-color > svg g
5252
{
5353
fill: #ae6aff;
5454
}
55+
> *.discoursebot
56+
{
57+
fill: #ff1e69;
58+
}
5559
> *.barbie
5660
{
5761
fill: #ff73a1;

0 commit comments

Comments
 (0)