update AI engines

This commit is contained in:
James Feng Cao 2025-07-17 10:21:39 +08:00
commit 62adb2b754
14 changed files with 55 additions and 38 deletions

View file

@ -106,7 +106,7 @@
<li>F12: devtools</li>
</ul>
<h4 id="address-bar-commands">Address bar commands</h4>
<p>Like any popular browser, the very first word in address bar if defined in &quot;search.json&quot; identifies a search engine. Moreover, the address bar serves as command line interface:</p>
<p>Like any popular browser, the very first word in address bar if defined in &quot;search.json&quot; identifies a <a href="https://jamesfengcao.gitlab.io/uweb/en/search/index.html" onclick="if(notRepo()){location='../search/index.html#';return false;}">search engine</a>. Moreover, the address bar serves as command line interface:</p>
<ul>
<li>&quot;/&quot; for find-in-page</li>
<li>&quot;:&quot; for address bar commands
@ -223,8 +223,8 @@
<p>You can copy or modify the code/program under the terms of the GPL3.0 or later versions.</p>
</div>
<p>Last Modified: 2 May 2025<br>
update ebrowser readme<br>
<p>Last Modified: 27 May 2025<br>
update AI engines<br>
<pre></pre>
</p>

View file

@ -1,7 +1,7 @@
<!doctype html>
<html>
<head>
<meta name="generator" content="Hugo 0.146.7">
<meta name="generator" content="Hugo 0.147.5">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/en/" />

View file

@ -6,7 +6,7 @@
<description>Recent content on uweb browser: unlimited power</description>
<generator>Hugo</generator>
<language>en</language>
<lastBuildDate>Fri, 02 May 2025 12:04:53 +0800</lastBuildDate>
<lastBuildDate>Thu, 17 Jul 2025 10:13:25 +0800</lastBuildDate>
<atom:link href="https://jamesfengcao.gitlab.io/uweb/en/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>popup menu for Long pressed link and downloading</title>
@ -34,7 +34,7 @@
<link>https://jamesfengcao.gitlab.io/uweb/en/search/</link>
<pubDate>Tue, 03 Dec 2024 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/search/</guid>
<description>&lt;p&gt;Clicking the following search engine configuration links (or append the link text to the file &amp;quot;home5.search&amp;quot;) installs search engines with &lt;a href=&#34;../index.html#&#34;&gt;uweb browser&lt;/a&gt;. &lt;a href=&#34;../ebrowserreadme/index.html#&#34;&gt;ebrowser&lt;/a&gt; users can change the engine name to be shorter (ex. 2 alphabets) as shortcut (click the link below and choose &#39;Cancel&#39; to have a chance to modify the engine name in address bar).&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;#aiSE&#34;&gt;AI&lt;/a&gt; &lt;a href=&#34;#mainSE&#34;&gt;Recommended&lt;/a&gt; &lt;a href=&#34;#commonSE&#34;&gt;Common&lt;/a&gt; &lt;a href=&#34;#langSE&#34;&gt;language&lt;/a&gt; &lt;a href=&#34;#textbookSE&#34;&gt;Science&lt;/a&gt; &lt;a href=&#34;#moreSE&#34;&gt;More&lt;/a&gt; &lt;a href=&#34;#medicalSE&#34;&gt;medical&lt;/a&gt; &lt;a href=&#34;#scholarSE&#34;&gt;scholar&lt;/a&gt; &lt;a href=&#34;#devSE&#34;&gt;dev&lt;/a&gt; &lt;a href=&#34;#localSE&#34;&gt;local&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a id=&#34;aiSE&#34;&gt;AI&lt;/a&gt; (Appending &amp;quot;%250D&amp;quot; after &amp;quot;%s&amp;quot; as ENTER for uweb and &amp;quot;%0D&amp;quot; for ebrowser):&lt;br&gt;&#xA;&lt;a href=&#34;i:00copilot:https://copilot.microsoft.com/?q=&#34;&gt;copilot:https://copilot.microsoft.com/?q=&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:00felo:https://felo.ai/search?q=&#34;&gt;felo:https://felo.ai/search?q=&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:00deepseek:i:0/js/uwebset.js:https://chat.deepseek.com#uweb=%s&#34;&gt;deepseek:i:0/js/uwebset.js:https://chat.deepseek.com#uweb=%s&lt;/a&gt;&lt;/p&gt;</description>
<description>&lt;p&gt;Clicking the following search engine configuration links (or append the link text to the file &amp;quot;home5.search&amp;quot;) installs search engines with &lt;a href=&#34;../index.html#&#34;&gt;uweb browser&lt;/a&gt;. &lt;a href=&#34;../ebrowserreadme/index.html#&#34;&gt;ebrowser&lt;/a&gt; users can change the engine name to be shorter (ex. 2 alphabets) as shortcut (click the link below and choose &#39;Cancel&#39; to have a chance to modify the engine name in address bar).&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;#aiSE&#34;&gt;AI&lt;/a&gt; &lt;a href=&#34;#mainSE&#34;&gt;Recommended&lt;/a&gt; &lt;a href=&#34;#commonSE&#34;&gt;Common&lt;/a&gt; &lt;a href=&#34;#langSE&#34;&gt;language&lt;/a&gt; &lt;a href=&#34;#textbookSE&#34;&gt;Science&lt;/a&gt; &lt;a href=&#34;#moreSE&#34;&gt;More&lt;/a&gt; &lt;a href=&#34;#medicalSE&#34;&gt;medical&lt;/a&gt; &lt;a href=&#34;#scholarSE&#34;&gt;scholar&lt;/a&gt; &lt;a href=&#34;#devSE&#34;&gt;dev&lt;/a&gt; &lt;a href=&#34;#localSE&#34;&gt;local&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a id=&#34;aiSE&#34;&gt;AI&lt;/a&gt; (Appending &amp;quot;%250D&amp;quot; after &amp;quot;%s&amp;quot; as ENTER for uweb and &amp;quot;%0D&amp;quot; for ebrowser):&lt;br&gt;&#xA;&lt;a href=&#34;i:00copilot:https://copilot.microsoft.com/?q=&#34;&gt;copilot:https://copilot.microsoft.com/?q=&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:00felo:https://felo.ai/search?q=&#34;&gt;felo:https://felo.ai/search?q=&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:00search.sh:https://search.sh/?q=&#34;&gt;search.sh:https://search.sh/?q=&lt;/a&gt;&lt;/p&gt;</description>
</item>
<item>
<title>CSS styles</title>

View file

@ -14,6 +14,10 @@ Clicking the following search engine configuration links (or append the link tex
<a href="i:00felo:https://felo.ai/search?q=">felo:https://felo.ai/search?q=</a>
<a href="i:00search.sh:https://search.sh/?q=">search.sh:https://search.sh/?q=</a>
<a href="i:00z:https://chat.z.ai/?q=">z:https://chat.z.ai/?q=</a>
<a href="i:00deepseek:i:0/js/uwebset.js:https://chat.deepseek.com#uweb=%s">deepseek:i:0/js/uwebset.js:https://chat.deepseek.com#uweb=%s</a>
<a href="i:00aoyo:https://aoyo.ai/search/?q=">aoyo:https://aoyo.ai/search/?q=</a>

View file

@ -53,6 +53,8 @@
<p><a id="aiSE">AI</a> (Appending &quot;%250D&quot; after &quot;%s&quot; as ENTER for uweb and &quot;%0D&quot; for ebrowser):<br>
<a href="i:00copilot:https://copilot.microsoft.com/?q=">copilot:https://copilot.microsoft.com/?q=</a></p>
<p><a href="i:00felo:https://felo.ai/search?q=">felo:https://felo.ai/search?q=</a></p>
<p><a href="i:00search.sh:https://search.sh/?q=">search.sh:https://search.sh/?q=</a></p>
<p><a href="i:00z:https://chat.z.ai/?q=">z:https://chat.z.ai/?q=</a></p>
<p><a href="i:00deepseek:i:0/js/uwebset.js:https://chat.deepseek.com#uweb=%s">deepseek:i:0/js/uwebset.js:https://chat.deepseek.com#uweb=%s</a></p>
<p><a href="i:00aoyo:https://aoyo.ai/search/?q=">aoyo:https://aoyo.ai/search/?q=</a></p>
<p><a href="i:00monica.im:https://monica.im/home/chat/deepseek-r1/deepseek_reasoner?q=">monica.im:https://monica.im/home/chat/deepseek-r1/deepseek_reasoner?q=</a></p>
@ -281,7 +283,7 @@
<a href="https://alternativeto.net/software/google-search/?feature=web-search">alternativeto</a></p>
</div>
<p>Last Modified: 11 April 2025<br>
<p>Last Modified: 17 July 2025<br>
add notes for &#39;%250D&#39;<br>
<pre>Add AI engines
</pre>

View file

@ -55,7 +55,7 @@
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/</loc>
<lastmod>2025-05-02T12:04:53+08:00</lastmod>
<lastmod>2025-07-17T10:13:25+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
@ -84,7 +84,7 @@
<lastmod>2025-04-07T22:07:29+08:00</lastmod>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/search/</loc>
<lastmod>2025-04-11T08:35:03+08:00</lastmod>
<lastmod>2025-07-17T10:13:25+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
@ -97,7 +97,7 @@
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/topposts/</loc>
<lastmod>2025-04-11T08:35:03+08:00</lastmod>
<lastmod>2025-07-17T10:13:25+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
@ -530,7 +530,7 @@
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/ebrowserreadme/</loc>
<lastmod>2025-05-02T12:04:53+08:00</lastmod>
<lastmod>2025-05-27T11:41:23+08:00</lastmod>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/mirrors/</loc>
<lastmod>2025-04-12T07:42:28+08:00</lastmod>
@ -561,7 +561,7 @@
/>
</url><url>
<loc>https://jamesfengcao.gitlab.io/uweb/en/unlist/</loc>
<lastmod>2025-05-02T12:04:53+08:00</lastmod>
<lastmod>2025-05-27T11:41:23+08:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"

View file

@ -6,14 +6,14 @@
<description>Recent content in Topposts on uweb browser: unlimited power</description>
<generator>Hugo</generator>
<language>en</language>
<lastBuildDate>Fri, 11 Apr 2025 08:35:03 +0800</lastBuildDate>
<lastBuildDate>Thu, 17 Jul 2025 10:13:25 +0800</lastBuildDate>
<atom:link href="https://jamesfengcao.gitlab.io/uweb/en/topposts/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Search engine query URLs</title>
<link>https://jamesfengcao.gitlab.io/uweb/en/search/</link>
<pubDate>Tue, 03 Dec 2024 00:00:00 +0000</pubDate>
<guid>https://jamesfengcao.gitlab.io/uweb/en/search/</guid>
<description>&lt;p&gt;Clicking the following search engine configuration links (or append the link text to the file &amp;quot;home5.search&amp;quot;) installs search engines with &lt;a href=&#34;../index.html#&#34;&gt;uweb browser&lt;/a&gt;. &lt;a href=&#34;../ebrowserreadme/index.html#&#34;&gt;ebrowser&lt;/a&gt; users can change the engine name to be shorter (ex. 2 alphabets) as shortcut (click the link below and choose &#39;Cancel&#39; to have a chance to modify the engine name in address bar).&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;#aiSE&#34;&gt;AI&lt;/a&gt; &lt;a href=&#34;#mainSE&#34;&gt;Recommended&lt;/a&gt; &lt;a href=&#34;#commonSE&#34;&gt;Common&lt;/a&gt; &lt;a href=&#34;#langSE&#34;&gt;language&lt;/a&gt; &lt;a href=&#34;#textbookSE&#34;&gt;Science&lt;/a&gt; &lt;a href=&#34;#moreSE&#34;&gt;More&lt;/a&gt; &lt;a href=&#34;#medicalSE&#34;&gt;medical&lt;/a&gt; &lt;a href=&#34;#scholarSE&#34;&gt;scholar&lt;/a&gt; &lt;a href=&#34;#devSE&#34;&gt;dev&lt;/a&gt; &lt;a href=&#34;#localSE&#34;&gt;local&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a id=&#34;aiSE&#34;&gt;AI&lt;/a&gt; (Appending &amp;quot;%250D&amp;quot; after &amp;quot;%s&amp;quot; as ENTER for uweb and &amp;quot;%0D&amp;quot; for ebrowser):&lt;br&gt;&#xA;&lt;a href=&#34;i:00copilot:https://copilot.microsoft.com/?q=&#34;&gt;copilot:https://copilot.microsoft.com/?q=&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:00felo:https://felo.ai/search?q=&#34;&gt;felo:https://felo.ai/search?q=&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:00deepseek:i:0/js/uwebset.js:https://chat.deepseek.com#uweb=%s&#34;&gt;deepseek:i:0/js/uwebset.js:https://chat.deepseek.com#uweb=%s&lt;/a&gt;&lt;/p&gt;</description>
<description>&lt;p&gt;Clicking the following search engine configuration links (or append the link text to the file &amp;quot;home5.search&amp;quot;) installs search engines with &lt;a href=&#34;../index.html#&#34;&gt;uweb browser&lt;/a&gt;. &lt;a href=&#34;../ebrowserreadme/index.html#&#34;&gt;ebrowser&lt;/a&gt; users can change the engine name to be shorter (ex. 2 alphabets) as shortcut (click the link below and choose &#39;Cancel&#39; to have a chance to modify the engine name in address bar).&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;#aiSE&#34;&gt;AI&lt;/a&gt; &lt;a href=&#34;#mainSE&#34;&gt;Recommended&lt;/a&gt; &lt;a href=&#34;#commonSE&#34;&gt;Common&lt;/a&gt; &lt;a href=&#34;#langSE&#34;&gt;language&lt;/a&gt; &lt;a href=&#34;#textbookSE&#34;&gt;Science&lt;/a&gt; &lt;a href=&#34;#moreSE&#34;&gt;More&lt;/a&gt; &lt;a href=&#34;#medicalSE&#34;&gt;medical&lt;/a&gt; &lt;a href=&#34;#scholarSE&#34;&gt;scholar&lt;/a&gt; &lt;a href=&#34;#devSE&#34;&gt;dev&lt;/a&gt; &lt;a href=&#34;#localSE&#34;&gt;local&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a id=&#34;aiSE&#34;&gt;AI&lt;/a&gt; (Appending &amp;quot;%250D&amp;quot; after &amp;quot;%s&amp;quot; as ENTER for uweb and &amp;quot;%0D&amp;quot; for ebrowser):&lt;br&gt;&#xA;&lt;a href=&#34;i:00copilot:https://copilot.microsoft.com/?q=&#34;&gt;copilot:https://copilot.microsoft.com/?q=&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:00felo:https://felo.ai/search?q=&#34;&gt;felo:https://felo.ai/search?q=&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;i:00search.sh:https://search.sh/?q=&#34;&gt;search.sh:https://search.sh/?q=&lt;/a&gt;&lt;/p&gt;</description>
</item>
<item>
<title>Downloads</title>

View file

@ -69,7 +69,7 @@ Type ":update" in the address bar and press "enter" key to update.
- F12: devtools
#### Address bar commands
Like any popular browser, the very first word in address bar if defined in "search.json" identifies a search engine. Moreover, the address bar serves as command line interface:
Like any popular browser, the very first word in address bar if defined in "search.json" identifies a <a href="https://jamesfengcao.gitlab.io/uweb/en/search/index.html" onclick="if(notRepo()){location='../search/index.html#';return false;}">search engine</a>. Moreover, the address bar serves as command line interface:
- "/" for find-in-page
- ":" for address bar commands
- ac [bookmark/history path w/o ext] : load ".rec" file for autocomplete.

View file

@ -244,7 +244,9 @@ You should have received a copy of the GNU General Public License along with thi
let nTabs = tabs.children.length;
if(nTabs<2) return "";//no remain tab
let tab = tabs.children[iTab];
closedUrls.push(tab.getURL());
try {
closedUrls.push(tab.getURL());
} catch(e){}
if(document.activeElement == tab) tab.blur();
tabs.removeChild(tab);
nTabs--;

View file

@ -1,4 +1,4 @@
{"version":"1.0.69",
{"version":"1.0.71",
"name": "ebrowser",
"description": "The keyboard-friendly minimal suckless web browser",
"main": "webview.js",
@ -9,6 +9,7 @@
"README.md",
"translate.*",
"js/*.js",
"search.json",
"mapkeys.json"
],
"scripts": {

View file

@ -5,7 +5,7 @@
"bdic":"http://cn.bing.com/dict/search?q=%s",
"ki":"https://kimi.moonshot.cn/_prefill_chat?force_search=true&send_immediately=true&prefill_prompt=%s",
"hk":"i:0/js/uweb2ta.js:https://heck.ai/#10uweb=%s%0D",
"xb":"i:0/js/uwebset.js:https://www.wenxiaobai.com/chat/200006?10uweb=%s%0D",
"xb":"i:0/js/uwebset.js:https://www.wenxiaobai.com/chat/200006?20uweb=%s%0D",
"qw":"i:0/js/uweb2ta.js:https://chat.qwenlm.ai#uweb=%s",
"sl":"i:0/js/uwebset.js:https://www.solab.ai#uweb=%s",
"ms":"https://metaso.cn?q=%s",
@ -19,7 +19,7 @@
"exa":"https://exa.ai/search?c=all&q=%s",
"andi":"https://andisearch.com/?q=%s",
"ph":"https://phind-ai.com/search?q=%s",
"gf":"https://greasyfork.org/en/scripts?filter_locale=0&sort=updated&q=%s",
"gf":"https://gf.qytechs.cn/en/scripts?filter_locale=0&sort=updated&q=%s",
"repo":"https://www.awesome-repositories.com/s/results-with-ai/%s",
"you":"https://you.com/search?tbm=youchat&q=%s",
"p":"https://www.perplexity.ai/?q=%s",
@ -43,5 +43,5 @@
"wa":"https://www.wolframalpha.com/input?i=%s",
"zdm":"http://search.smzdm.com/?c=youhui&s=%s",
"android":"http://cn.bing.com/search?q=site:developer.android.google.cn/reference+%s",
"bd":"https://baidu.com/s?wd=%s"
"bd":"https://www.baidu.com/s?wd=%s"
}

View file

@ -32,6 +32,7 @@ const fs = require('fs');
const path = require('path')
const https = require('https');
const url = require('url');
var downloadMillis = 0;
var translateRes;
{
let langs = app.getPreferredSystemLanguages();
@ -53,7 +54,7 @@ var bForwardCookie = true;
var proxies = {};
var proxy;
var useragents = {};
var downloadMenus; //[]
var downloadMenus = [];
var selectMenus = [];
var defaultUA;
{
@ -95,7 +96,7 @@ async function createWindow () {
})();
win = new BrowserWindow(
{maximized: true,show: false, autoHideMenuBar: true,
{show: false, autoHideMenuBar: true,
webPreferences: {
nodeIntegration: true,
contextIsolation: false,
@ -103,6 +104,7 @@ async function createWindow () {
}});
win.setMenuBarVisibility(false);
win.once('ready-to-show', () => {
win.maximize();
win.show();
});
win.on('closed', function () {
@ -150,11 +152,20 @@ async function createWindow () {
session.defaultSession.on("will-download", async (e, item) => {
//item.setSavePath(save)
if(!downloadMenus) return;
let menuT = downloadContextMenuTemp(item.getURL());
let button = await promiseContextMenu(menuT);
if(-1===button) return;
let curMillis = Date.now();
if(curMillis-downloadMillis<9000){
item.on('updated', (event, state) => {
const progress = item.getReceivedBytes() / item.getTotalBytes();
win.setProgressBar(progress);
});
item.on('done', () => win.setProgressBar(-1));
return;
}
e.preventDefault();
let url = item.getURL();
let menuT = downloadContextMenuTemp(url);
const menu = Menu.buildFromTemplate(menuT);
menu.popup();
});
win.webContents.on('console-message',cbConsoleMsg);
@ -446,6 +457,7 @@ function menuArray(labelprefix, linkUrl){
{
label: labelprefix+translate('Download'),
click: () => {
downloadMillis = Date.now();
win.webContents.downloadURL(linkUrl);
}
},
@ -788,7 +800,12 @@ function help(){
function downloadContextMenuTemp(url){
let mTemplate =
[{label:url,enabled:false},
{label: translate('Download')},
{label: translate('Download'),
click: () => {
downloadMillis = Date.now();
win.webContents.downloadURL(url);
}
},
{
label: translate('Copy'),
click: () => {
@ -817,15 +834,6 @@ function translate(str){
return str;
}
function promiseContextMenu(menuTemplate) {
return new Promise((resolve, reject) => {
menuTemplate[1].click = () => resolve(-1);
const menu = Menu.buildFromTemplate(menuTemplate);
menu.on('menu-will-close', () => resolve(-2));
menu.popup();
});
}
function httpReq(url, method, filePath){
fs.readFile(filePath, (err, fileData) => {
if (err) {

View file

@ -4,7 +4,7 @@
<sitemap>
<loc>https://jamesfengcao.gitlab.io/uweb/en/sitemap.xml</loc>
<lastmod>2025-05-02T12:04:53+08:00</lastmod>
<lastmod>2025-07-17T10:13:25+08:00</lastmod>
</sitemap>

View file

@ -1,7 +1,7 @@
<!doctype html>
<html>
<head>
<meta name="generator" content="Hugo 0.146.7">
<meta name="generator" content="Hugo 0.147.5">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="canonical" href="https://jamesfengcao.gitlab.io/uweb/zh/" />