Skip to content
This repository was archived by the owner on Feb 24, 2025. It is now read-only.

Commit c65b117

Browse files
committed
Merge branch 'main' into sam/rename-project-file
2 parents 7471c7a + 38c9489 commit c65b117

File tree

16 files changed

+245
-399
lines changed

16 files changed

+245
-399
lines changed

LocalPackages/AIChat/Sources/AIChat/URL+Extension.swift

+14-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ extension URL {
2626
static let chatQueryValue = "chat"
2727

2828
static let bangQueryName = "q"
29-
static let bangQueryPrefix = "!ai"
29+
static let supportedBangs: Set<String> = ["ai", "aichat", "chat", "duckai"]
3030
}
3131

3232
func addingOrReplacingQueryItem(_ queryItem: URLQueryItem) -> URL {
@@ -65,7 +65,19 @@ extension URL {
6565
return false
6666
}
6767

68-
return queryItems.contains { $0.name == Constants.bangQueryName && $0.value?.hasPrefix(Constants.bangQueryPrefix) == true }
68+
return queryItems.contains { $0.name == Constants.bangQueryName && hasSupportedBangPrefix($0.value) }
69+
}
70+
71+
private func hasSupportedBangPrefix(_ input: String?) -> Bool {
72+
guard let input = input else {
73+
return false
74+
}
75+
76+
/// Bangs can be used either at the beginning or at the end of a query.
77+
let bangValues = Constants.supportedBangs.flatMap { bang in
78+
return ["!\(bang)", "\(bang)!"]
79+
}
80+
return bangValues.contains { input.hasPrefix($0) }
6981
}
7082

7183
}

LocalPackages/AIChat/Tests/URLExtensionTests.swift

+28-1
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ final class URLExtensionTests: XCTestCase {
145145
}
146146

147147
/// Duck AI Bang
148-
func testIsDuckAIBangWithValidBangQuery() {
148+
func testIsDuckAIBangWithValidAIBangQuery() {
149149
let urlString = "https://duckduckgo.com/?q=!ai+some+query"
150150
if let url = URL(string: urlString) {
151151
XCTAssertTrue(url.isDuckAIBang, "The URL should be identified as a DuckDuckGo AI Bang URL.")
@@ -154,6 +154,33 @@ final class URLExtensionTests: XCTestCase {
154154
}
155155
}
156156

157+
func testIsDuckAIBangWithValidAIEndingBangQuery() {
158+
let urlString = "https://duckduckgo.com/?q=ai!+some+query"
159+
if let url = URL(string: urlString) {
160+
XCTAssertTrue(url.isDuckAIBang, "The URL should be identified as a DuckDuckGo AI Bang URL.")
161+
} else {
162+
XCTFail("Failed to create URL from string.")
163+
}
164+
}
165+
166+
func testIsDuckAIBangWithValidChatBangQuery() {
167+
let urlString = "https://duckduckgo.com/?q=!chat+some+query"
168+
if let url = URL(string: urlString) {
169+
XCTAssertTrue(url.isDuckAIBang, "The URL should be identified as a DuckDuckGo AI Bang URL.")
170+
} else {
171+
XCTFail("Failed to create URL from string.")
172+
}
173+
}
174+
175+
func testIsDuckAIBangWithValidChatEndingBangQuery() {
176+
let urlString = "https://duckduckgo.com/?q=chat!+some+query"
177+
if let url = URL(string: urlString) {
178+
XCTAssertTrue(url.isDuckAIBang, "The URL should be identified as a DuckDuckGo AI Bang URL.")
179+
} else {
180+
XCTFail("Failed to create URL from string.")
181+
}
182+
}
183+
157184
func testIsDuckAIBangWithInvalidBangQuery() {
158185
let urlString = "https://duckduckgo.com/?q=some+query"
159186
if let url = URL(string: urlString) {

fastlane/metadata/cs/description.txt

+12-29
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,24 @@
1-
V DuckDuckGo věříme, že nejlepší způsob, jak ochránit tvoje osobní údaje před hackery, podvodníky a společnostmi, co jim soukromí moc neříká, je vůbec jim přístup k tvým údajům neumožnit. Proto milióny lidí při prohlížení webu dávají přednost DuckDuckGo před Chromem a dalšími prohlížeči. Náš vyhledávač integrovaný v prohlížeči je jako Google, ale nikdy nesleduje, co hledáš. A naše sada funkcí na ochranu soukromí, která zahrnuje blokování reklamních trackerů a cookies, brání firmám ve sběru tvých dat. Náš prohlížeč je navíc zdarma – vyděláváme na reklamách ve vyhledávání, které respektují soukromí a nezneužívají tvé údaje. Získej zpátky kontrolu nad svými osobními údaji s prohlížečem navrženým pro ochranu dat, ne pro jejich sběr.
1+
Aplikace DuckDuckGo přináší nejkomplexnější ochranu soukromí na internetu pouhým stisknutím tlačítka. Bezplatným stažením získáš internetový prohlížeč pro každodenní surfování v soukromí se špičkovou ochranou při vyhledávání a prohlížení webu a ochranu před sledováním příchozích e-mailů a používaných aplikací. Většina oblíbených webových prohlížečů mnohé z těchto ochranných prvků ve výchozím nastavení nenabízí.
22

33
NEJDŮLEŽITĚJŠÍ FUNKCE
4-
Spolehni se na ochranu hledání: V prohlížeči je integrované DuckDuckGo Search, takže můžeš na internetu snadno hledat, aniž by tě někdo sledoval.
4+
• Soukromí při vyhledávání jako standard - Stačí použít integrovaný vyhledávač DuckDuckGo Private Search.
55

6-
Chraň svou historii prohlížení: Naše ochrana před načítáním trackerů třetích stran blokuje většinu trackerů ještě předtím, než se načtou, takže výrazně překonává to, co ve výchozím nastavení nabízí většina oblíbených prohlížečů.
6+
• Blokování sledovacích souborů cookie - Zabrání většině externích souborů cookie, aby sledovaly, jaké stránky na internetu sleduješ.
77

8-
Zabezpeč si e-mail (volitelné): Pomocí funkce Email Protection můžeš zablokovat většinu e-mailových trackerů a skrýt svou skutečnou e-mailovou adresu pomocí adres @duck.com.
8+
• Zablokování většiny trackerů dřív, než se načtou - Nedovol firmám shromažďovat a používat osobní údaje z těchto trackerů ukrytých na různých webech.
99

10-
Sleduj videa na YouTube bez cílených reklam : Duck Player tě ochrání před cílenými reklamami a soubory cookie pomocí rozhraní bez rušivých prvků, které vynucuje to nejpřísnější nastavení ochrany soukromí pro videa na YouTube.
11-
12-
Automaticky vynucuj šifrování: Chraň svoje data před slíděním v síti a Wi-Fi tím, že si na mnoha webech vyžádáš připojení HTTPS.
10+
• Vynucované šifrování - Na mnoha navštívených webech si můžeš vyžádat automatické používání šifrovaného připojení (HTTPS).
1311

14-
Zabraň fingerprintingu: Znesnadni firmám vytváření tvého jedinečného identifikátoru tím, že budeš blokovat jejich pokusy o kombinování informací o tvém prohlížeči a zařízení.
12+
• Blokování trackerů v e-mailech (beta) - Vytvoř si vlastní e-mailovou adresu @duck.com. Funkce ochrany e-mailu ti pak pomůže zablokovat většinu e-mailových trackerů, skrýt současnou adresu a přeposílat zprávy do nové schránky.
1513

16-
Bezpečně synchronizuj a zálohuj (volitelné): Synchronizuj šifrované záložky a hesla mezi svými zařízeními.
14+
• Už žádné digitální stopy - Zabraň firmám v tom, aby si vytvářely tvůj jedinečný identifikátor.
1715

18-
Vymaž karty a údaje o prohlížení okamžitě pomocí tlačítka Fire Button.
16+
• Máme hodně ochranných prvků, kterými většina internetových prohlížečů nedisponuje (často ani v anonymním režimu): třeba ochranu před sledováním odkazů, sledováním Google AMP a další.
1917

20-
Zakaž vyskakovací okna souborů cookie a automaticky nastav své preference tak, aby se minimalizovaly soubory cookie a maximalizovalo soukromí.
18+
KAŽDODENNÍ OCHRANA SOUKROMÍ
19+
• Stačí klepnout na Fire Button a tvoje data jsou pryč. - Tlačítkem Fire Button smažeš rychle všechny záložky a údaje o prohlížení.
2120

22-
A mnoho dalších ochranných funkcí, které většina prohlížečů neumožňuje dokonce ani v anonymním režimu, včetně ochrany před sledováním odkazů, funkce Global Privacy Control (GPC) a dalších.
23-
24-
Předplať si Privacy Pro a získáš:
21+
• Ukaž, jak to vidíš se svým soukromím, pomocí Globální kontroly ochrany osobních údajů (GPC). - Další informace najdeš na https://help.duckduckgo.com/duckduckgo-help-pages/privacy/gpc/.
2522

26-
• VPN: Zabezpeč si připojení na systému iOS, Android, Mac i Windows.
27-
• Identity Theft Restoration: Získej v případě krádeže identity pomoc s obnovou ukradených účtů a řešením finančních ztrát.
28-
29-
Ceník a podmínky předplatného Privacy Pro
30-
Platba se bude automaticky účtovat přes tvůj účet iTunes, dokud předplatné nezrušíš, což můžeš udělat v nastavení aplikace. Tvoje osobní údaje nejsou k registraci předplatného potřeba. Můžeš ale zadat e-mailovou adresu pro aktivaci předplatného na jiných zařízeních, kterou použijeme jen k ověření tvého předplatného. Dostupnost funkcí se liší podle země. Podmínky služby a zásady ochrany osobních údajů najdeš na https://duckduckgo.com/pro/privacy-terms.
31-
32-
Tak na co čekáš? Vezmi kontrolu nad svými osobními údaji do vlastních rukou! Přidej se k milionům lidí, kteří každý den používají DuckDuckGo k ochraně svého vyhledávání, prohlížení webu a posílání e-mailů.
33-
34-
Další informace o bezplatné ochraně před trackery si můžeš přečíst na adrese https://help.duckduckgo.com/privacy/web-tracking-protections.
35-
36-
Zásady ochrany osobních údajů: https://duckduckgo.com/privacy/
37-
38-
Podmínky služby: https://duckduckgo.com/terms
39-
40-
Poznámka k ochraně před sledováním třetími stranami a reklamám ve vyhledávání: I když možnost sledovat kliknutí na reklamy ve vyhledávání je kvůli tomu omezená, prohlížení reklam ve vyhledávání DuckDuckGo je anonymní. Víc se dozvíš na https://help.duckduckgo.com/privacy/web-tracking-protections.
23+
Další informace o tomto tématu a bezplatné ochraně před trackery si můžeš přečíst na adrese https://help.duckduckgo.com/privacy/web-tracking-protections.
4124

+11-25
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,21 @@
1-
Wir bei DuckDuckGo glauben, dass der beste Weg, deine persönlichen Daten vor Hackern, Betrügern und Unternehmen, die deine Privatsphäre verletzen, zu schützen, darin besteht, gar nicht erst zuzulassen, dass sie gesammelt werden. Deshalb entscheiden sich Millionen von Menschen für DuckDuckGo anstelle von Chrome und anderen Browsern, um online zu suchen und zu surfen. Unsere integrierte Suchmaschine ist wie Google , aber sie trackt deine Suchanfragen nie. Und unsere Browsing-Schutzfunktionen, wie die Tracker-Blockade und das Blockieren von Cookies, helfen, zu verhindern, dass andere Unternehmen deine Daten sammeln. Oh, und unser Browser ist kostenlos – wir verdienen unser Geld mit datenschutzfreundlichen Suchanzeigen, nicht durch die Ausbeutung deiner Daten. Übernimm die Kontrolle über deine persönlichen Daten mit dem Browser, der für den Datenschutz und nicht für die Datensammlung entwickelt wurde.
1+
Die DuckDuckGo-App bietet den umfassendsten Online-Datenschutz mit nur einem Knopfdruck. Mit einem einzigen Download erhältst du einen neuen Browser für die alltägliche Nutzung, der nahtlosen Schutz beim Suchen und Surfen bietet sowie Zugriff auf Tracking-Schutz beim Empfang von E-Mails. Viele dieser Schutzmaßnahmen werden in den meisten gängigen Browsern standardmäßig nicht angeboten.
22

33
HIGHLIGHTS DER FUNKTION
4-
Schütze deine Suchanfragen standardmäßig: DuckDuckGo Search ist integriert, damit du ganz einfach online suchen kannst, ohne getrackt zu werden.
4+
• Standardmäßig privat suchen – DuckDuckGo Private Search ist integriert, damit du problemlos das Internet durchsuchen kannst, ohne getrackt zu werden.
55

6-
Schütze deinen Browserverlauf: Unsere Tracker Loading Protection blockiert die meisten Tracker, bevor sie geladen werden, und übertrifft damit bei weitem das, was die meisten gängigen Browser standardmäßig bieten.
6+
• Entkomme Website-Tracker schon bevor sie laden – stoppt automatisch das Laden der meisten versteckten Tracker (Skripte von Drittanbietern), was Unternehmen daran hindert, Daten (z. B.Verkauf, Werbung usw.) von diesen Trackern zu sammeln und zu verwenden. Unsere hochmoderne Tracker-Blockierungstechnologie – genannt 3rd-Party Tracker Loading Protection – geht über das hinaus, was du standardmäßig in den meisten gängigen Browsern erhältst.
77

8-
Sichere deine E-Mail (optional): Verwende Email Protection, um die meisten E-Mail-Tracker zu blockieren und deine bestehende E-Mail-Adresse mit @duck.com-Adressen zu verbergen.
8+
• Verschlüsselung automatisch erzwingen – Zwinge viele der von dir besuchten Websites dazu, automatisch eine verschlüsselte Verbindung (HTTPS) zu verwenden. So werden deine Daten vor WLAN-Schnüfflern und Netzwerkzaungästen wie deinem Internetanbieter geschützt. 
99

10-
Sieh dir YouTube-Videos ohne gezielte Werbung an : Duck Player schützt dich vor gezielter Werbung und Cookies mit einer ablenkungsfreien Oberfläche, die die strengsten Datenschutzeinstellungen von YouTube für eingebettete Videos enthält.
11-
12-
Sicher synchronisieren und sichern (Optional): Verschlüsselte Lesezeichen und Passwörter auf deinen Geräten synchronisieren.
13-
14-
Lösche deine Tabs und Browserdaten mit einem Klick auf den Fire Button.
10+
• Integrierte Email Protection aktivieren – Über 85 % der an Duck-Adressen gesendeten E-Mails enthalten Tracker, die erkennen können, wann du eine Nachricht geöffnet hast, wo du warst, als du sie geöffnet hast, und welches Gerät du verwendet hast. Email Protection macht es einfach, die meisten E-Mail-Tracker zu blockieren und deine vorhandene Adresse zu verbergen, wenn du dich online anmeldest – und das alles, ohne den E-Mail-Anbieter zu wechseln.
1511

16-
Verbanne Cookie-Pop-ups und stelle deine Einstellungen automatisch ein, um Cookies zu minimieren und die Privatsphäre zu maximieren.
12+
Wir bieten außerdem viele Schutzmechanismen, die in den meisten Browsern nicht verfügbar sind, einschließlich Schutz vor Link-Tracking, Schutz vor Fingerprinting, Cookie Blocking, Google AMP-Tracking und mehr.
1713

18-
Und viele weitere Schutzfunktionen, die in den meisten Browsern nicht verfügbar sind, selbst im privaten Modus, einschließlich Schutz vor Link-Tracking, Global Privacy Control (GPC) und mehr.
19-
20-
Abonniere Privacy Pro für:
14+
DATENSCHUTZKONTROLLE FÜR JEDEN TAG
15+
• Auf den Fire Button tippen und Daten löschen – Lösche deine Tabs und Browserdaten mit unserem Fire Button.
2116

22-
• VPN: Sichere deine Verbindung auf iOS, Android, Mac und Windows.
23-
• Identity Theft Restoration: Erhalte Hilfe bei der Wiederherstellung gestohlener Konten und finanzieller Verluste, falls deine Identität gestohlen wird.
17+
• Signalisiere deine Privatsphäre-Präferenz mit Global Privacy Control (GPC) – GPC ist in unsere App integriert und hilft dir, deine Widerspruchsrechte automatisch auszuüben, indem du Websites darüber informierst, dass sie deine persönlichen Daten nicht verkaufen oder weitergeben dürfen. Ob deine Rechtsansprüche (z. B. aktuelle oder zukünftige CCPA- oder DSGVO-Anforderungen) auf diese Weise durchgesetzt werden können, hängt von den Gesetzen in deiner Gerichtsbarkeit ab.
2418

25-
Preise und Bedingungen von Privacy Pro
26-
Die Zahlung wird automatisch von deinem iTunes-Konto abgebucht, bis du das Abonnement in den App-Einstellungen kündigst. Deine persönlichen Daten sind für das Abonnement nicht erforderlich. Du kannst eine E-Mail-Adresse angeben, um dein Abonnement auf anderen Geräten zu aktivieren. Wir verwenden diese E-Mail-Adresse nur zur Bestätigung deines Abonnements. Die Verfügbarkeit der Funktionen variiert je nach Land. Die Nutzungsbedingungen und die Datenschutzerklärung findest du unter https://duckduckgo.com/pro/privacy-terms
19+
Weitere Informationen hierzu sowie zu Tracking Protection unter https://help.duckduckgo.com/privacy/web-tracking-protections/
2720

28-
Du musst nicht warten, um die Kontrolle über deine persönlichen Informationen zu übernehmen! Schließe dich den Millionen von Menschen an, die DuckDuckGo nutzen, um ihre täglichen Suchanfragen, ihr Verhalten beim Browsen und ihre E-Mails zu schützen.
29-
30-
Weitere Informationen zu unserer kostenlosen Tracking Protection findest du unter https://help.duckduckgo.com/privacy/web-tracking-protections
31-
Datenschutzrichtlinie: https://duckduckgo.com/privacy/
32-
33-
Nutzungsbedingungen: https://duckduckgo.com/terms
34-
35-
Hinweis zum Schutz vor Drittanbieter-Trackern und Suchanzeigen: Es gibt zwar einige Einschränkungen nach Klicks auf Suchanzeigen, aber das Anzeigen von Werbung in der DuckDuckGo-Suche bleibt anonym. Erfahre hier mehr https://help.duckduckgo.com/privacy/web-tracking-protections
21+
Du musst nicht warten, um dir deine Privatsphäre zurückzuholen. Schließ dich den Millionen von Menschen an, die DuckDuckGo nutzen, und schütze viele deiner täglichen Online-Aktivitäten mit einer einzigen App. Das ist Datenschutz, vereinfacht.

0 commit comments

Comments
 (0)