Conversation
|
Congratulations on your new Raycast extension! 🚀 We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 10-15 business days. Once the PR is approved and merged, the extension will be available on our Store. |
- update title to proper case - Fix TypeScript cache type error - removed obsolete asset file
Greptile SummaryThis PR adds a new Duden (German dictionary) extension that scrapes Duden.de using cheerio, displays word details (part of speech, frequency, meanings, synonyms, etymology, IPA), and uses Confidence Score: 5/5Safe to merge — all remaining findings are P2 style suggestions that do not affect runtime behavior. Navigation is correctly handled with useNavigation().push(), the frequency display is protected against out-of-range values, the changelog uses the {PR_MERGE_DATE} placeholder, and categories are correctly set to Documentation + Web. The only open finding is the redundant @types/cheerio devDependency, which is a cleanup suggestion and not a blocker. extensions/duden/package.json — redundant @types/cheerio devDependency Important Files Changed
Prompt To Fix All With AIThis is a comment left during a code review.
Path: extensions/duden/package.json
Line: 34
Comment:
**`@types/cheerio` is redundant with cheerio@1.0.0**
`cheerio@1.0.0` ships its own bundled TypeScript types; `@types/cheerio@0.22.35` was the DefinitelyTyped package for the old `v0.x` API and is no longer needed. TypeScript prefers a package's own bundled types, so this entry is effectively unused and can cause confusion if the `v0.x` type shapes (e.g. the non-generic `Cheerio` namespace members) differ from what cheerio@1's bundled types export.
```suggestion
"@types/node": "22.13.10",
```
**Rule Used:** What: Every dependency listed in package.json must... ([source](https://app.greptile.com/review/custom-context?memory=bffc60eb-f9f2-4219-b804-76e29e267d43))
How can I resolve this? If you propose a fix, please make it concise.Reviews (5): Last reviewed commit: "fix stuck loading indicator when search ..." | Re-trigger Greptile |
- Remove unused DudenWord import
- Fix double debouncing: Remove manual setTimeout, keep throttle prop
- Fix navigation: Use Raycast navigation stack instead of conditional rendering
- use \'Documentation\' as primary category
- use {PR_MERGE_DATE} placeholder in changelog
|
This pull request has been automatically marked as stale because it did not have any recent activity. It will be closed if no further activity occurs in the next 7 days to keep our backlog clean 😊 |
|
👋 this is not stale - just waiting for review |
0xdhrv
left a comment
There was a problem hiding this comment.
Hey @ahinderling 👋
I have added a few comments for you to address.
I'm looking forward to testing this extension again 🔥
Feel free to contact me here or at Slack if you have any questions.
I converted this PR into a draft until it's ready for the review, please press the button Ready for review when it's ready and we'll have a look 😊
- remove unused clearCache function - remove unused DudenApiError interface declaration - add cleanup effect using isCancelled flag - switch to raycast\'s built in cache for caching - remove unused dependencies from package.json - improve extension icon to work better in both light and dark mode - update changelog: less technical, more user facing
| const response = await fetch(url, { | ||
| signal: controller.signal, | ||
| headers: { | ||
| "User-Agent": | ||
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", | ||
| }, | ||
| }); |
There was a problem hiding this comment.
issue: scraping might violate duden ToS
The extension scrapes Duden.de HTML while impersonating a regular Chrome browser. This is deceptive and may violate Duden.de's Terms of Service.
0xdhrv
left a comment
There was a problem hiding this comment.
Hey @ahinderling 👋
I have added a comment for you to address.
I'm looking forward to testing this extension again 🔥
Feel free to contact me here or at Slack if you have any questions.
I converted this PR into a draft until it's ready for the review, please press the button Ready for review when it's ready and we'll have a look 😊
|
Hey @0xdhrv 👋 thanks for flagging this. I've updated the User-Agent in This removes the "impersonating Chrome" concern — Duden can now recognize the traffic and contact the project or block it if they want. On the ToS question, I checked both robots.txt (
AGB (
Happy to reconsider if you're aware of a specific clause I missed, or if Raycast has a stricter internal policy for scraping-based extensions. Otherwise I think the honest User-Agent is the right fix here and I'll mark the PR ready for review. |
0xdhrv
left a comment
There was a problem hiding this comment.
Looks good to me, approved ✅
|
Published to the Raycast Store: |
|
🎉 🎉 🎉 Such a great contribution deserves a reward, but unfortunately we couldn't find your Raycast account based on your GitHub username (@ahinderling). Please link your GitHub account to your Raycast account to receive your credits and soon be able to exchange them for some swag. |
Description
Lookup lemma from the online DUDEN (German language dictionary)
Screencast
Checklist
npm run buildand tested this distribution build in Raycastassetsfolder are used by the extension itselfREADMEare placed outside of themetadatafolder