程序员老王 发布的文章

目录结构

tree .
.
├── assets
│   ├── logo.png
│   └── upload.png
├── css
│   ├── chunk-vendors.css
│   ├── content.css
│   ├── popup.css
│   └── sidePanel.css
├── favicon.ico
├── index.html
├── js
│   ├── background.js
│   ├── content.js
├── manifest.json
├── options.html
├── popup.html

content.js

// content-script.js
//assets/img.avif是根目录下
async function autoUploadExtensionImage(imagePath = 'assets/upload.png') {
    try {
        // 1. 获取扩展内图片URL
        const imageUrl = chrome.runtime.getURL(imagePath);
        console.log('扩展资源URL:', imageUrl);

        // 2. 直接获取二进制数据
        const response = await fetch(imageUrl);
        if (!response.ok) throw new Error(`HTTP错误: ${response.status}`);

        // 3. 转换为File对象
        const blob = await response.blob();
        const file = new File([blob], 'auto_upload.png', {
            type: blob.type || 'image/png',
            lastModified: Date.now()
        });

        // 4. 执行上传操作
        const input = document.querySelector('input[type="file"]');
        const dataTransfer = new DataTransfer();
        dataTransfer.items.add(file);
        input.files = dataTransfer.files;

        // 5. 触发完整事件链
        ['input', 'change'].forEach(eventType => {
            input.dispatchEvent(new Event(eventType, {bubbles: true}));
        });
    } catch (error) {
        console.error('自动化上传失败:', error);
        throw error;
    }
}

server {
    server_name example.com;
    access_log /var/log/nginx/proxy.access.log;

    location /openai/ {
        # 移除/openai路径前缀
        rewrite ^/openai/(.*)$ /$1 break;

        # 代理到OpenAI API
        proxy_pass https://api.openai.com;

        # 设置正确的请求头
        proxy_set_header Host api.openai.com;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header Upgrade $http_upgrade;
        proxy_http_version 1.1;

        proxy_ssl_server_name on;
        proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        #sse
        # 取消缓冲
        proxy_buffering off;
        # 关闭代理缓存
        proxy_cache off;

        # 添加缓存状态头(如需要)
        add_header X-Cache $upstream_cache_status;
    }
}

nexe build

nexe main.js --build

ℹ nexe 4.0.0-rc.6
✔ Already downloaded...
✔ Configuring node build: --dest-cpu=x64
✔ Finished in 5.814s

Error: python ./configure.py --dest-cpu=x64 exited with code: 1

See nexe -h for usage..

指定python版本

#nexe build specify python
export PYTHON=/Library/Frameworks/Python.framework/Versions/3.7/bin/python3

from django.db import models

class MyModel(models.Model):
    field1 = models.CharField(max_length=100)
    field2 = models.IntegerField()

    class Meta:
        unique_together = ('field1', 'field2')  # 联合唯一索引

登录错误 ERROR 1524 (HY000): Plugin 'mysql_native_plugin' is not loaded

mysql -uroot -proot

执行

use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'root';

跳过权限

mysqld --skip-grant-tables --skip-networking
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'root';

或者

use mysql;
UPDATE user SET plugin='caching_sha2_password' WHERE user='root' AND host='localhost';
FLUSH PRIVILEGES;