Skip to content

Commit d419ea3

Browse files
feat: Add init command to generate evidence.yaml templates with built-in user agent profiles.
1 parent a3e4507 commit d419ea3

File tree

7 files changed

+714
-84
lines changed

7 files changed

+714
-84
lines changed

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,4 +98,8 @@ $RECYCLE.BIN/
9898
# Windows shortcuts
9999
*.lnk
100100

101-
# End of https://www.toptal.com/developers/gitignore/api/go,windows,linux,macos
101+
# End of https://www.toptal.com/developers/gitignore/api/go,windows,linux,macos
102+
103+
# Application generated files
104+
evidence.yaml
105+
screenshot.*

README.md

Lines changed: 18 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -142,67 +142,20 @@ OK.
142142

143143
### 2.4 組み込みUser Agent定義
144144

145-
```go
146-
// internal/browser/useragent.go
147-
type UserAgentProfile struct {
148-
Name string
149-
UserAgentString string
150-
ViewportWidth int
151-
ViewportHeight int
152-
Mobile bool
153-
TouchSupport bool
154-
}
145+
✅ **実装済み**: `internal/config/useragent.go`
155146

156-
// 組み込みUA(user_agent_stringが省略可能)
157-
var BuiltinUserAgents = map[string]UserAgentProfile{
158-
"Desktop_Chrome": {
159-
Name: "Desktop_Chrome",
160-
UserAgentString: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
161-
ViewportWidth: 1920,
162-
ViewportHeight: 1080,
163-
Mobile: false,
164-
},
165-
"Desktop_Firefox": {
166-
Name: "Desktop_Firefox",
167-
UserAgentString: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0",
168-
ViewportWidth: 1920,
169-
ViewportHeight: 1080,
170-
Mobile: false,
171-
},
172-
"Mobile_Safari": {
173-
Name: "Mobile_Safari",
174-
UserAgentString: "Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1",
175-
ViewportWidth: 390,
176-
ViewportHeight: 844,
177-
Mobile: true,
178-
TouchSupport: true,
179-
},
180-
"Mobile_Chrome": {
181-
Name: "Mobile_Chrome",
182-
UserAgentString: "Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.135 Mobile Safari/537.36",
183-
ViewportWidth: 412,
184-
ViewportHeight: 915,
185-
Mobile: true,
186-
TouchSupport: true,
187-
},
188-
"Android_Webview_Google": {
189-
Name: "Android_Webview_Google",
190-
UserAgentString: "Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/131.0.6778.135 Mobile Safari/537.36",
191-
ViewportWidth: 412,
192-
ViewportHeight: 915,
193-
Mobile: true,
194-
TouchSupport: true,
195-
},
196-
"Android_Webview_LINE": {
197-
Name: "Android_Webview_LINE",
198-
UserAgentString: "Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/131.0.6778.135 Mobile Safari/537.36 Line/14.0.1",
199-
ViewportWidth: 412,
200-
ViewportHeight: 915,
201-
Mobile: true,
202-
TouchSupport: true,
203-
},
204-
}
205-
```
147+
組み込みUser Agentプロファイル:
148+
- Desktop: Chrome, Firefox, Safari
149+
- Mobile: Chrome, Safari, Firefox, Samsung Internet
150+
- WebView: Android Webview (Google), Android Webview (LINE)
151+
152+
デフォルト選択 (opt-out):
153+
| Browser | Mobile | Desktop |
154+
|----------|--------|---------|
155+
| Chrome | ✅ | ✅ |
156+
| Safari | ✅ | ⬜ |
157+
| Firefox | ⬜ | ⬜ |
158+
| Samsung | ✅ | N/A |
206159

207160
### 2.5 証拠データ構造
208161

@@ -443,11 +396,13 @@ down-force lite -c evidence.yaml
443396

444397
### 4.2 初期化コマンド
445398

399+
**実装済み**: `cmd/init.go`, `internal/config/template.go`
400+
446401
```bash
447402
# テンプレート生成(デフォルトUA付き)
448403
down-force init [filename]
449404

450-
# インタラクティブ生成
405+
# インタラクティブ生成(huh TUI)
451406
down-force init --interactive
452407

453408
# 最小テンプレート(UA 1つのみ)
@@ -457,6 +412,8 @@ down-force init --minimal
457412
down-force init --stdout
458413
```
459414

415+
生成されるYAMLには `yaml-language-server` スキーマ参照が自動的に含まれます。
416+
460417
### 4.3 検証コマンド
461418

462419
```bash

0 commit comments

Comments
 (0)