ebrowser v1.0.52

This commit is contained in:
James Feng Cao 2024-07-01 10:11:01 +08:00
parent 5e3172ece0
commit 5d062edbfa
3 changed files with 32 additions and 3 deletions

View file

@ -56,6 +56,7 @@ You should have received a copy of the GNU General Public License along with thi
} }
</style> </style>
<script> <script>
const { ipcRenderer } = require('electron');
const fs = require('fs'); const fs = require('fs');
const path = require('path'); const path = require('path');
const readline = require('readline'); const readline = require('readline');
@ -352,7 +353,7 @@ You should have received a copy of the GNU General Public License along with thi
return se.replace('%s',query); return se.replace('%s',query);
} }
function coloncommand(q){ function coloncommand(q){
document.title = q; ipcRenderer.send("command",q);
} }
function coloncommand_render(cmd){ function coloncommand_render(cmd){
args = cmd.substring(1).split(/\s+/); args = cmd.substring(1).split(/\s+/);

View file

@ -1,4 +1,4 @@
{"version":"1.0.51", {"version":"1.0.52",
"name": "ebrowser", "name": "ebrowser",
"description": "The keyboard-friendly minimal suckless web browser", "description": "The keyboard-friendly minimal suckless web browser",
"main": "webview.js", "main": "webview.js",

View file

@ -7,7 +7,7 @@ You should have received a copy of the GNU General Public License along with thi
*/ */
const { const {
app, BrowserWindow, Menu, shell, clipboard, app, BrowserWindow, Menu, shell, clipboard,
session, protocol, net, dialog session, protocol, net, dialog, ipcMain
} = require('electron') } = require('electron')
let win; let win;
@ -184,6 +184,10 @@ app.on ('web-contents-created', (event, contents) => {
} }
}); });
ipcMain.on('command', (event, cmd) => {
addrCommand(cmd);
});
function addrCommand(cmd){ function addrCommand(cmd){
if(cmd.length<3) return; if(cmd.length<3) return;
let c0 = cmd.charCodeAt(0); let c0 = cmd.charCodeAt(0);
@ -677,3 +681,27 @@ function translate(str){
if(translateRes && (result=translateRes[str])) return result; if(translateRes && (result=translateRes[str])) return result;
return str; return str;
} }
async function jsonAppend(filePath, charcode, str){
try{
const fd = await fs.promises.open(filePath, 'r+');
const stats = await fd.stat();
const fileSize = stats.size;
const buffer = Buffer.alloc(1);
let position = fileSize-1;
while (position >= 0) {
await fd.read(buffer, 0, 1, position);
if (buffer[0] === charcode) break;
}
let endS = String.fromCharCode(charcode);
if(position<0){//re-write whole file
str = String.fromCharCode(charcode-2)+str+endS;
position = 0;
}else
str = ","+str+endS;
await fd.truncate(position);
const buf = Buffer.from(str);
await fd.write(buf, 0, buf.length, position);
await fd.close();
}catch(e){console.log(e)}
}