Skip to content

Commit

Permalink
Added apis.AIchatOS.failFlags, included `apis.AIchatOS.expectedOrig…
Browse files Browse the repository at this point in the history
…in` in flag checks
  • Loading branch information
adamlui committed Jun 19, 2024
1 parent e1cc95b commit dc3fef6
Show file tree
Hide file tree
Showing 3 changed files with 114 additions and 96 deletions.
70 changes: 38 additions & 32 deletions bravegpt/greasemonkey/bravegpt.user.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@
// @description:zu Engeza amaswazi aseChatGPT emugqa wokuqala weBrave Search (ibhulohwe nguGPT-4o!)
// @author KudoAI
// @namespace https://kudoai.com
// @version 2024.6.19.1
// @version 2024.6.19.2
// @license MIT
// @icon https://media.bravegpt.com/images/icons/bravegpt/icon48.png?0a9e287
// @icon64 https://media.bravegpt.com/images/icons/bravegpt/icon64.png?0a9e287
Expand Down Expand Up @@ -199,14 +199,18 @@ setTimeout(async () => {
// Init API props
const openAIendpoints = { auth: 'https://auth0.openai.com', session: 'https://chatgpt.com/api/auth/session' }
const apis = {
'AIchatOS': { expectedOrigin: 'https://chat18.aichatos8.com',
endpoint: 'https://api.binjie.fun/api/generateStream', method: 'POST', streamable: true, accumulatesText: false },
'GPTforLove': { expectedOrigin: 'https://ai27.gptforlove.com',
endpoint: 'https://api11.gptforlove.com/chat-process', method: 'POST', streamable: true, accumulatesText: true },
'MixerBox AI': { expectedOrigin: 'https://chatai.mixerbox.com',
endpoint: 'https://chatai.mixerbox.com/api/chat/stream', method: 'POST', streamable: true, accumulatesText: false },
'OpenAI': { expectedOrigin: 'https://chatgpt.com',
endpoint: 'https://api.openai.com/v1/chat/completions', method: 'POST', streamable: true }
'AIchatOS': {
expectedOrigin: 'https://chat18.aichatos8.com', endpoint: 'https://api.binjie.fun/api/generateStream',
method: 'POST', streamable: true, accumulatesText: false, failFlags: ['很抱歉地', '系统公告'] },
'GPTforLove': {
expectedOrigin: 'https://ai27.gptforlove.com', endpoint: 'https://api11.gptforlove.com/chat-process',
method: 'POST', streamable: true, accumulatesText: true },
'MixerBox AI': {
expectedOrigin: 'https://chatai.mixerbox.com', endpoint: 'https://chatai.mixerbox.com/api/chat/stream',
method: 'POST', streamable: true, accumulatesText: false },
'OpenAI': {
expectedOrigin: 'https://chatgpt.com', endpoint: 'https://api.openai.com/v1/chat/completions',
method: 'POST', streamable: true }
}
const apiIDs = { gptForLove: { parentID: '' }, aiChatOS: { userID: '#/chat/' + Date.now() }}

Expand Down Expand Up @@ -1322,15 +1326,16 @@ setTimeout(async () => {
if (get.related.api == 'OpenAI') {
try { str_relatedQueries = JSON.parse(event.response).choices[0].message.content }
catch (err) { consoleErr(err) ; reject(err) }
} else if (get.related.api == 'AIchatOS' && !/很抱歉地|系统公告/.test(event.responseText)) {
try {
const text = event.responseText, chunkSize = 1024
let currentIdx = 0
while (currentIdx < text.length) {
const chunk = text.substring(currentIdx, currentIdx + chunkSize)
currentIdx += chunkSize ; str_relatedQueries += chunk
}
} catch (err) { consoleErr(err) ; reject(err) }
} else if (get.related.api == 'AIchatOS'
&& !new RegExp([apis.AIchatOS.expectedOrigin, ...apis.AIchatOS.failFlags].join('|')).test(event.responseText)) {
try {
const text = event.responseText, chunkSize = 1024
let currentIdx = 0
while (currentIdx < text.length) {
const chunk = text.substring(currentIdx, currentIdx + chunkSize)
currentIdx += chunkSize ; str_relatedQueries += chunk
}
} catch (err) { consoleErr(err) ; reject(err) }
} else if (get.related.api == 'GPTforLove') {
try {
let chunks = event.responseText.trim().split('\n')
Expand Down Expand Up @@ -1388,21 +1393,22 @@ setTimeout(async () => {
}
} else { consoleInfo('Response: ' + resp.responseText) ; appAlert('openAInotWorking, suggestProxy') }
} else if (caller.api == 'AIchatOS') {
if (resp.responseText && !/很抱歉地|系统公告/.test(resp.responseText)) {
try {
const text = resp.responseText, chunkSize = 1024
let answer = '', currentIdx = 0
while (currentIdx < text.length) {
const chunk = text.substring(currentIdx, currentIdx + chunkSize)
currentIdx += chunkSize ; answer += chunk
if (resp.responseText
&& !new RegExp([apis.AIchatOS.expectedOrigin, ...apis.AIchatOS.failFlags].join('|')).test(resp.responseText)) {
try {
const text = resp.responseText, chunkSize = 1024
let answer = '', currentIdx = 0
while (currentIdx < text.length) {
const chunk = text.substring(currentIdx, currentIdx + chunkSize)
currentIdx += chunkSize ; answer += chunk
}
show.reply(answer, footerContent)
get.reply.status = 'done' ; api.clearTimedOut(get.reply.triedAPIs) ; get.reply.attemptCnt = null
} catch (err) { // use different endpoint or suggest OpenAI
consoleInfo('Response: ' + resp.responseText)
consoleErr(appAlerts.parseFailed, err)
if (get.reply.status != 'done') api.tryNew(caller)
}
show.reply(answer, footerContent)
get.reply.status = 'done' ; api.clearTimedOut(get.reply.triedAPIs) ; get.reply.attemptCnt = null
} catch (err) { // use different endpoint or suggest OpenAI
consoleInfo('Response: ' + resp.responseText)
consoleErr(appAlerts.parseFailed, err)
if (get.reply.status != 'done') api.tryNew(caller)
}
} else { consoleInfo('Response: ' + resp.responseText) ; if (get.reply.status != 'done') api.tryNew(caller) }
} else if (caller.api == 'GPTforLove') {
if (resp.responseText && !resp.responseText.includes('Fail')) {
Expand Down
70 changes: 38 additions & 32 deletions duckduckgpt/greasemonkey/duckduckgpt.user.js
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@
// @description:zu Faka amaphawu ase-ChatGPT kuvaliwe i-DuckDuckGo Search (okwesikhashana ngu-GPT-4o!)
// @author KudoAI
// @namespace https://kudoai.com
// @version 2024.6.19.3
// @version 2024.6.19.4
// @license MIT
// @icon https://media.ddgpt.com/images/icons/duckduckgpt/icon48.png?af89302
// @icon64 https://media.ddgpt.com/images/icons/duckduckgpt/icon64.png?af89302
Expand Down Expand Up @@ -243,14 +243,18 @@
// Init API props
const openAIendpoints = { auth: 'https://auth0.openai.com', session: 'https://chatgpt.com/api/auth/session' }
const apis = {
'AIchatOS': { expectedOrigin: 'https://chat18.aichatos8.com',
endpoint: 'https://api.binjie.fun/api/generateStream', method: 'POST', streamable: true, accumulatesText: false },
'GPTforLove': { expectedOrigin: 'https://ai27.gptforlove.com',
endpoint: 'https://api11.gptforlove.com/chat-process', method: 'POST', streamable: true, accumulatesText: true },
'MixerBox AI': { expectedOrigin: 'https://chatai.mixerbox.com',
endpoint: 'https://chatai.mixerbox.com/api/chat/stream', method: 'POST', streamable: true, accumulatesText: false },
'OpenAI': { expectedOrigin: 'https://chatgpt.com',
endpoint: 'https://api.openai.com/v1/chat/completions', method: 'POST', streamable: true }
'AIchatOS': {
expectedOrigin: 'https://chat18.aichatos8.com', endpoint: 'https://api.binjie.fun/api/generateStream',
method: 'POST', streamable: true, accumulatesText: false, failFlags: ['很抱歉地', '系统公告'] },
'GPTforLove': {
expectedOrigin: 'https://ai27.gptforlove.com', endpoint: 'https://api11.gptforlove.com/chat-process',
method: 'POST', streamable: true, accumulatesText: true },
'MixerBox AI': {
expectedOrigin: 'https://chatai.mixerbox.com', endpoint: 'https://chatai.mixerbox.com/api/chat/stream',
method: 'POST', streamable: true, accumulatesText: false },
'OpenAI': {
expectedOrigin: 'https://chatgpt.com', endpoint: 'https://api.openai.com/v1/chat/completions',
method: 'POST', streamable: true }
}
const apiIDs = { gptForLove: { parentID: '' }, aiChatOS: { userID: '#/chat/' + Date.now() }}

Expand Down Expand Up @@ -1287,15 +1291,16 @@
if (get.related.api == 'OpenAI') {
try { str_relatedQueries = JSON.parse(event.response).choices[0].message.content }
catch (err) { consoleErr(err) ; reject(err) }
} else if (get.related.api == 'AIchatOS' && !/很抱歉地|系统公告/.test(event.responseText)) {
try {
const text = event.responseText, chunkSize = 1024
let currentIdx = 0
while (currentIdx < text.length) {
const chunk = text.substring(currentIdx, currentIdx + chunkSize)
currentIdx += chunkSize ; str_relatedQueries += chunk
}
} catch (err) { consoleErr(err) ; reject(err) }
} else if (get.related.api == 'AIchatOS'
&& !new RegExp([apis.AIchatOS.expectedOrigin, ...apis.AIchatOS.failFlags].join('|')).test(event.responseText)) {
try {
const text = event.responseText, chunkSize = 1024
let currentIdx = 0
while (currentIdx < text.length) {
const chunk = text.substring(currentIdx, currentIdx + chunkSize)
currentIdx += chunkSize ; str_relatedQueries += chunk
}
} catch (err) { consoleErr(err) ; reject(err) }
} else if (get.related.api == 'GPTforLove') {
try {
let chunks = event.responseText.trim().split('\n')
Expand Down Expand Up @@ -1353,21 +1358,22 @@
}
} else { consoleInfo('Response: ' + resp.responseText) ; appAlert('openAInotWorking, suggestProxy') }
} else if (caller.api == 'AIchatOS') {
if (resp.responseText && !/很抱歉地|系统公告/.test(resp.responseText)) {
try {
const text = resp.responseText, chunkSize = 1024
let answer = '', currentIdx = 0
while (currentIdx < text.length) {
const chunk = text.substring(currentIdx, currentIdx + chunkSize)
currentIdx += chunkSize ; answer += chunk
if (resp.responseText
&& !new RegExp([apis.AIchatOS.expectedOrigin, ...apis.AIchatOS.failFlags].join('|')).test(resp.responseText)) {
try {
const text = resp.responseText, chunkSize = 1024
let answer = '', currentIdx = 0
while (currentIdx < text.length) {
const chunk = text.substring(currentIdx, currentIdx + chunkSize)
currentIdx += chunkSize ; answer += chunk
}
show.reply(answer)
get.reply.status = 'done' ; api.clearTimedOut(get.reply.triedAPIs) ; get.reply.attemptCnt = null
} catch (err) { // use different endpoint or suggest OpenAI
consoleInfo('Response: ' + resp.responseText)
consoleErr(appAlerts.parseFailed, err)
if (get.reply.status != 'done') api.tryNew(caller)
}
show.reply(answer)
get.reply.status = 'done' ; api.clearTimedOut(get.reply.triedAPIs) ; get.reply.attemptCnt = null
} catch (err) { // use different endpoint or suggest OpenAI
consoleInfo('Response: ' + resp.responseText)
consoleErr(appAlerts.parseFailed, err)
if (get.reply.status != 'done') api.tryNew(caller)
}
} else { consoleInfo('Response: ' + resp.responseText) ; if (get.reply.status != 'done') api.tryNew(caller) }
} else if (caller.api == 'GPTforLove') {
if (resp.responseText && !resp.responseText.includes('Fail')) {
Expand Down
Loading

0 comments on commit dc3fef6

Please sign in to comment.