Skip to content

Commit

Permalink
feat: 增加ai绘画平台,增加版本更新,
Browse files Browse the repository at this point in the history
删除功能增加确认,
版本升级到0.4.0.
  • Loading branch information
lpdswing committed Apr 17, 2023
1 parent ccdfd09 commit 52a3b20
Show file tree
Hide file tree
Showing 7 changed files with 101 additions and 21 deletions.
15 changes: 11 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
<div align="center">
<img src="demo/GPT Fusion.png" alt="chatgpt"/>
<h1>GPTFusion - GPT聚合版</h1>
<div><img src="https://img.shields.io/badge/stable%20version-v0.3.3-blue.svg?style=flat"></img>
<img src="https://img.shields.io/badge/preview%20version-v0.4.0%20PREVIEW-orange.svg?style=flat"></img>
<div><img src="https://img.shields.io/badge/stable%20version-v0.4.0-blue.svg?style=flat"></img>
<img src="https://img.shields.io/badge/preview%20version-v0.5.0%20PREVIEW-orange.svg?style=flat"></img>
<img src="https://img.shields.io/badge/license-GPL%203.0-brightgreen.svg?style=flat"></img>
<img src="https://img.shields.io/badge/language-简体中文-brightgreen.svg?style=flat"></img></div>
<h4>聚合ChatGPT官方版、ChatGPT免费版、文心一言、POE、chat chat等多个平台。</h4>
Expand All @@ -14,9 +14,11 @@
GPT聚合版是一个聚合了多个GPT聊天机器人的聊天工具.

## Feature
- [x] 跨平台
- [x] 跨平台支持
- [x] 自定义平台菜单
- [x] 菜单动态加载(windows)
- [x] 检查更新
- [x] 内置平台分类
- [ ] 菜单动态加载(linux) 暂不支持
- [ ] 菜单动态加载(macos) 暂不支持
- [ ] 更多功能
Expand All @@ -28,6 +30,7 @@ GPT聚合版是一个聚合了多个GPT聊天机器人的聊天工具.

##### ChatGPT免费版
无需注册账号、无需登录账号、稳定极速(部分国家和地区无法正常访问)
内置3个国内镜像, 可通过自定义平台功能把自己的镜像添加至自定义平台菜单.

##### ChatChat
无需注册账号、无需登录账号、稳定极速、每日限额,可正常访问。
Expand All @@ -37,14 +40,17 @@ GPT聚合版是一个聚合了多个GPT聊天机器人的聊天工具.
建议谷歌账户登录

##### 文心一言
需要有体验资格且必须登录百度账号
需要有体验资格且必须登录百度账号(扫描登录可能会记不住登录状态)

##### 通义千问
需要有邀请码

##### Bard
需有体验资格且必须登录 Google 账号(部分国家和地区无法正常访问)

##### Newbing
需要有体验资格且必须登录微软账号(国内ip无法正常跳转)

## Demo
<div>
<img src="demo/baidu.png" width=40% alt="yiyan"/>
Expand All @@ -53,6 +59,7 @@ GPT聚合版是一个聚合了多个GPT聊天机器人的聊天工具.
<img src="demo/select.png" width=40% alt="平台选择"/>
<img src="demo/tongyi.png" width=40% alt="阿里"/>
<img src="demo/platforms.png" width=40% alt="阿里"/>
<img src="demo/wxyg.png" width=40% alt="wenxinyige"/>
</div>

## Thanks
Expand Down
77 changes: 66 additions & 11 deletions app.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@ import (
"fmt"
"github.com/wailsapp/wails/v2/pkg/menu"
wruntime "github.com/wailsapp/wails/v2/pkg/runtime"
"net/http"
"os"
"runtime"
"path"
"os/user"
"path"
"runtime"
)

// App struct
Expand Down Expand Up @@ -55,7 +56,7 @@ func (app *App) ReadMenu() []PlatForm {
platforms = []PlatForm{
{
Id: "1",
Label: "Google",
Label: "自定义Demo",
Url: "https://www.google.com",
},
}
Expand Down Expand Up @@ -112,7 +113,8 @@ func (app *App) initMenu() *menu.Menu {
trayMenu.Append(menu.AppMenu())
trayMenu.Append(menu.EditMenu())
}
platforms := trayMenu.AddSubmenu("平台选择")
// 内置聊天平台
platforms := trayMenu.AddSubmenu("AI聊天平台")
platforms.AddText("文心一言(百度)", nil, func(cd *menu.CallbackData) {
wruntime.WindowExecJS(app.ctx, "window.location.replace('https://yiyan.baidu.com/');")
})
Expand Down Expand Up @@ -146,7 +148,13 @@ func (app *App) initMenu() *menu.Menu {
platforms.AddText("POE(多平台)", nil, func(cd *menu.CallbackData) {
wruntime.WindowExecJS(app.ctx, "window.location.replace('https://poe.com/');")
})
custom := trayMenu.AddSubmenu("自定义")
// 内置绘画平台
aiDraw := trayMenu.AddSubmenu("AI绘画平台")
aiDraw.AddText("文心一格", nil, func(cd *menu.CallbackData) {
wruntime.WindowExecJS(app.ctx, "window.location.replace('https://yige.baidu.com/');")
})

custom := trayMenu.AddSubmenu("自定义平台")
custom_menu_data := app.ReadMenu()
fmt.Println(custom_menu_data)
for _, p := range custom_menu_data {
Expand All @@ -162,8 +170,8 @@ func (app *App) initMenu() *menu.Menu {
})
}
// 工具
platformEdit := trayMenu.AddSubmenu("设置")
platformEdit.AddText("平台管理", nil, func(cd *menu.CallbackData) {
setting := trayMenu.AddSubmenu("设置")
setting.AddText("平台管理", nil, func(cd *menu.CallbackData) {
home := configPath("home.txt")
url, err := os.ReadFile(home)
if err != nil {
Expand All @@ -175,10 +183,36 @@ func (app *App) initMenu() *menu.Menu {
wruntime.WindowReload(app.ctx)
})

about := trayMenu.AddSubmenu("关于我们")
about.AddText("访问Github", nil, func(cd *menu.CallbackData) {
about := trayMenu.AddSubmenu("帮助")
about.AddText("关于我们", nil, func(cd *menu.CallbackData) {
wruntime.MessageDialog(app.ctx, wruntime.MessageDialogOptions{
Title: "关于我们",
Message: "GPTFusion " + Version + "\n\n" + "作者:lpdswing\n\n" + "请关注微信公众号:Go学习日记",
})
})
about.AddText("前往Github", nil, func(cd *menu.CallbackData) {
wruntime.BrowserOpenURL(app.ctx, "https://github.com/lpdswing/chatgpt")
})
about.AddText("检查更新", nil, func(cd *menu.CallbackData) {
// 检查更新
ok, LatestVersion, err := checkForUpdate(Version)
if err != nil {
fmt.Println(err)
}
// 和当前版本不一致
if ok {
wruntime.MessageDialog(app.ctx, wruntime.MessageDialogOptions{
Title: "软件更新",
Message: "您的当前版本为" + Version + "\n" + "最新版本为" + LatestVersion + "\n" + "请前往Github下载最新版本",
})
} else {
wruntime.MessageDialog(app.ctx, wruntime.MessageDialogOptions{
Title: "软件更新",
Message: "您的当前版本为" + Version + "\n" + "已经是最新版本",
})
}

})
return trayMenu
}

Expand All @@ -191,6 +225,27 @@ func configPath(file string) string {
fmt.Println("Error creating config dir", err)
}
filePath := path.Join(configDir, file)
fmt.Println(filePath)
fmt.Println(filePath)
return filePath
}
}

func checkForUpdate(currentVersion string) (bool, string, error) {
// 检查更新
url := "https://api.github.com/repos/lpdswing/chatgpt/releases/latest"
resp, err := http.Get(url)
if err != nil {
return false, "", err
}
defer resp.Body.Close()

var release Release
if err := json.NewDecoder(resp.Body).Decode(&release); err != nil {
return false, "", err
}
fmt.Println(release.TagName)
return release.TagName != currentVersion, release.TagName, nil
}

type Release struct {
TagName string `json:"tag_name"`
}
Binary file modified demo/select.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added demo/wxyg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 20 additions & 4 deletions frontend/src/components/Index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,27 @@ const edit = (row: main.PlatForm) => {
newRowData.label = row.label
newRowData.url = row.url
};
const removeId = ref('')
const del = (row: main.PlatForm) => {
// 删除行
tableData.value = tableData.value.filter((item) => item.id !== row.id)
removeId.value = row.id
deleteDialogVisible.value = true
};
const confirm_del = () => {
// 删除行
tableData.value = tableData.value.filter((item) => item.id !== removeId.value)
// 更新文件
editMenu(tableData.value)
deleteDialogVisible.value = false
};
// 弹出框可见状态和表单数据
const dlgTitle = ref('添加平台')
const dialogVisible = ref(false)
const deleteDialogVisible = ref(false)
const newRowData = reactive({
id: '',
label: '',
Expand Down Expand Up @@ -137,17 +146,24 @@ WriteHome(window.location.href).then((data) => {
<el-form ref="addRowFormRef" :model="newRowData" :rules="newRowRules">
<!-- 表单项配置 -->
<el-form-item label="平台名称" prop="label">
<el-input v-model="newRowData.label" />
<el-input v-model="newRowData.label" placeholder="请输入平台名称: 比如(百度)"/>
</el-form-item>
<el-form-item label="平台链接" prop="url">
<el-input v-model="newRowData.url" />
<el-input v-model="newRowData.url" placeholder="请输入平台链接: 比如(https://www.baidu.com)"/>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="closeDig">取消</el-button>
<el-button type="primary" @click="addRow">确定</el-button>
</span>
</el-dialog>
<el-dialog title="确认删除" v-model="deleteDialogVisible" width="50%" draggable="true">
<span style="color: black;">删除后将不可恢复,确定要删除吗?</span>
<div style="margin-top: 36px;" slot="footer" class="dialog-footer">
<el-button @click="deleteDialogVisible = false">取消</el-button>
<el-button type="danger" @click="confirm_del">确定</el-button>
</div>
</el-dialog>
</template>

<style scoped>
Expand Down
4 changes: 3 additions & 1 deletion main.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ var assets embed.FS
//go:embed build/appicon.png
var icon []byte

const Version = "v0.4.0"

func main() {
// Create an instance of the app structure
app := NewApp()
Expand All @@ -35,7 +37,7 @@ func main() {
Mac: &mac.Options{
About: &mac.AboutInfo{
Title: "GPT聚合版",
Message: "GPT聚合版是一个聚合了多个GPT聊天机器人的聊天工具.\n" + "© 2023 by lpdswing. All Rights Reserved.",
Message: "版本号(" + Version + ")\n\n" + "GPT聚合版是一个聚合了多个GPT聊天机器人的聊天工具.\n\n" + "© 2023 by lpdswing.\n" + "All Rights Reserved.",
Icon: icon,
},
},
Expand Down
2 changes: 1 addition & 1 deletion wails.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"email": "lpdswing@qq.com"
},
"info": {
"productVersion": "0.3.3",
"productVersion": "0.4.0",
"companyName": "lpdswing"
}
}

0 comments on commit 52a3b20

Please sign in to comment.