Skip to content

Commit a01b445

Browse files
committed
v1.0.0
1 parent 9ecb3cf commit a01b445

22 files changed

+571
-232
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ dist/
3737

3838
# bpp - http://bpp.browser.market/
3939
keys.json
40+
key.json
4041

4142
# typescript
4243
.tsbuildinfo

assets/locales/en/messages.json

+106
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
{
2+
"extensionName": {
3+
"message": "ChatGPT to Notion",
4+
"description": "Name of the extension."
5+
},
6+
"extensionDescription": {
7+
"message": "Save your discussions with ChatGPT directly into Notion!",
8+
"description": "Description of the extension."
9+
},
10+
"nav_settings": {
11+
"message": "Settings",
12+
"description": "Settings page title."
13+
},
14+
"nav_about": {
15+
"message": "About",
16+
"description": "About page title."
17+
},
18+
"nav_home": {
19+
"message": "Home",
20+
"description": "Home page title."
21+
},
22+
"index_errRegister": {
23+
"message": "Please register a database in the settings",
24+
"description": "Error message when no database is registered."
25+
},
26+
"index_saveTo": {
27+
"message": "Save to:",
28+
"description": "Save to label."
29+
},
30+
"index_saveFullChat": {
31+
"message": "Save full chat",
32+
"description": "Save button text."
33+
},
34+
"index_discussionSaved": {
35+
"message": "Discussion saved!",
36+
"description": "Success message when discussion is saved."
37+
},
38+
"save_pageTitle": {
39+
"message": "Page title",
40+
"description": "Page title label."
41+
},
42+
"save_prompt": {
43+
"message": "Prompt",
44+
"description": "Prompt label."
45+
},
46+
"save_answer": {
47+
"message": "Answer",
48+
"description": "Answer label."
49+
},
50+
"save_saveTo": {
51+
"message": "Save to:",
52+
"description": "Save to label."
53+
},
54+
"save_save": {
55+
"message": "Save",
56+
"description": "Save button text."
57+
},
58+
"save_saved": {
59+
"message": "Saved!",
60+
"description": "Success message when discussion is saved."
61+
},
62+
"settings_noLinkedDb": {
63+
"message": "No linked DB",
64+
"description": "No linked database message."
65+
},
66+
"settings_linkedDatabases": {
67+
"message": "Linked databases",
68+
"description": "Linked databases title."
69+
},
70+
"settings_remove": {
71+
"message": "Remove",
72+
"description": "Remove"
73+
},
74+
"settings_searchPlaceholder": {
75+
"message": "Search a database",
76+
"description": "Search placeholder."
77+
},
78+
"wrongpage_goTo": {
79+
"message": "Go to",
80+
"description": "Go to label."
81+
},
82+
"wrongpage_chatgpt": {
83+
"message": "ChatGPT's page",
84+
"description": "ChatGPT page label."
85+
},
86+
"wrongpage_toUse": {
87+
"message": "to start doing fancy stuff",
88+
"description": "To use this extension label."
89+
},
90+
"about_extensionBy": {
91+
"message": "is an extension developped by",
92+
"description": "Extension by label."
93+
},
94+
"about_suggestionsIssues": {
95+
"message": "Got any suggestion/issue to report? Check out the extension's GitHub.",
96+
"description": "Suggestion/issue CTA."
97+
},
98+
"about_pinIcon": {
99+
"message": "Pin icon made by",
100+
"description": "Pin icon label."
101+
},
102+
"about_pinLicense": {
103+
"message": "is licensed by CC BY 3.0",
104+
"description": "Pin icon licence label."
105+
}
106+
}

assets/locales/fr/messages.json

+106
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
{
2+
"extensionName": {
3+
"message": "ChatGPT vers Notion",
4+
"description": "Name of the extension."
5+
},
6+
"extensionDescription": {
7+
"message": "Sauvegardez vos discussions avec ChatGPT directement dans Notion!",
8+
"description": "Description of the extension."
9+
},
10+
"nav_settings": {
11+
"message": "Réglages",
12+
"description": "Settings page title."
13+
},
14+
"nav_about": {
15+
"message": "A propos",
16+
"description": "About page title."
17+
},
18+
"nav_home": {
19+
"message": "Notion",
20+
"description": "Home page title."
21+
},
22+
"index_errRegister": {
23+
"message": "Enregistez une base de données dans les réglages pour commencer",
24+
"description": "Error message when no database is registered."
25+
},
26+
"index_saveTo": {
27+
"message": "Enregistrer sous",
28+
"description": "Save to label."
29+
},
30+
"index_saveFullChat": {
31+
"message": "Enregistrer la page",
32+
"description": "Save button text."
33+
},
34+
"index_discussionSaved": {
35+
"message": "Enregistré !",
36+
"description": "Success message when discussion is saved."
37+
},
38+
"save_pageTitle": {
39+
"message": "Page",
40+
"description": "Page title label."
41+
},
42+
"save_prompt": {
43+
"message": "Question",
44+
"description": "Prompt label."
45+
},
46+
"save_answer": {
47+
"message": "Réponse",
48+
"description": "Answer label."
49+
},
50+
"save_saveTo": {
51+
"message": "Enregistrer sous",
52+
"description": "Save to label."
53+
},
54+
"save_save": {
55+
"message": "Enregistrer",
56+
"description": "Save button text."
57+
},
58+
"save_saved": {
59+
"message": "Enregistré !",
60+
"description": "Success message when discussion is saved."
61+
},
62+
"settings_noLinkedDb": {
63+
"message": "Pas de BDD reliée",
64+
"description": "No linked database message."
65+
},
66+
"settings_linkedDatabases": {
67+
"message": "Base de données",
68+
"description": "Linked databases title."
69+
},
70+
"settings_remove": {
71+
"message": "Suppr",
72+
"description": "Remove"
73+
},
74+
"settings_searchPlaceholder": {
75+
"message": "Rechercher une BDD",
76+
"description": "Search placeholder."
77+
},
78+
"wrongpage_goTo": {
79+
"message": "Allez sur le site de",
80+
"description": "Go to label."
81+
},
82+
"wrongpage_chatgpt": {
83+
"message": "ChatGPT",
84+
"description": "ChatGPT page label."
85+
},
86+
"wrongpage_toUse": {
87+
"message": "pour utiliser cette extension",
88+
"description": "To use this extension label."
89+
},
90+
"about_extensionBy": {
91+
"message": "est une extension développée par",
92+
"description": "Extension by label."
93+
},
94+
"about_suggestionsIssues": {
95+
"message": "Un problème ou une suggestion ? Rendez-vous sur le GitHub de l'extension.",
96+
"description": "Suggestion/issue CTA."
97+
},
98+
"about_pinIcon": {
99+
"message": "Icône d'éplingle par",
100+
"description": "Pin icon label."
101+
},
102+
"about_pinLicense": {
103+
"message": "sous licence CC BY 3.0",
104+
"description": "Pin icon licence label."
105+
}
106+
}

package.json

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"name": "chatgpt-to-notion",
3-
"displayName": "Chatgpt to notion",
4-
"version": "0.0.0",
5-
"description": "Save your discussions with ChatGPT directly into Notion!",
3+
"displayName": "__MSG_extensionName__",
4+
"version": "1.0.0",
5+
"description": "__MSG_extensionDescription__",
66
"author": "Théo Lartigau",
77
"scripts": {
88
"dev": "plasmo dev",
@@ -33,6 +33,7 @@
3333
"typescript": "4.9.3"
3434
},
3535
"manifest": {
36+
"default_locale": "en",
3637
"host_permissions": [
3738
"https://*/*"
3839
],

src/api/generateToken.ts

+36-20
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,40 @@
11
import { Storage } from "@plasmohq/storage"
22

33
export const generateToken = async (code: string) => {
4-
console.log(code)
5-
const storage = new Storage({
6-
area: "session"
7-
})
8-
const response = await fetch(
9-
"https://chatgpt-to-notion.onrender.com/token/new",
10-
{
11-
method: "POST",
12-
headers: {
13-
"Content-Type": "application/json"
14-
},
15-
body: JSON.stringify({
16-
code,
17-
grant_type: "authorization-code",
18-
redirect_uri: "https://github.com/L-a-r-t/chatgpt-to-notion"
19-
})
20-
}
21-
)
22-
const { token } = await response.json()
23-
return token
4+
try {
5+
const storage = new Storage()
6+
const session = new Storage({
7+
area: "session",
8+
secretKeyList: ["token"]
9+
})
10+
const response = await fetch(
11+
"https://chatgpt-to-notion.onrender.com/token/new",
12+
{
13+
method: "POST",
14+
headers: {
15+
"Content-Type": "application/json"
16+
},
17+
body: JSON.stringify({
18+
code,
19+
grant_type: "authorization_code",
20+
redirect_uri: "https://github.com/L-a-r-t/chatgpt-to-notion"
21+
})
22+
}
23+
)
24+
const data = await response.json()
25+
26+
await session.set("token", data.access_token)
27+
28+
const user_id = data.owner.workspace ? "x" : data.owner.user.id
29+
const user = data.owner.workspace ? null : data.owner.user
30+
await Promise.all([
31+
storage.set("workspace_id", data.workspace_id),
32+
storage.set("workspace_name", data.workspace_name),
33+
storage.set("user_id", user_id),
34+
storage.set("user", user)
35+
])
36+
return data.user
37+
} catch (err) {
38+
console.error(err)
39+
}
2440
}

src/api/getDatabase.ts

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { isFullDatabase } from "@notionhq/client"
2+
3+
import getNotion from "~config/notion"
4+
5+
export const getDatabase = async (id: string) => {
6+
try {
7+
const notion = await getNotion()
8+
const response = await notion.databases.retrieve({
9+
database_id: id
10+
})
11+
if (!isFullDatabase(response)) return
12+
return response
13+
} catch (err) {
14+
console.error(err)
15+
}
16+
}

src/api/getToken.ts

+19-12
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
11
export const getToken = async ({ workspace_id, user_id }: GetTokenParams) => {
2-
const response = await fetch("https://chatgpt-to-notion.onrender.com/token", {
3-
method: "POST",
4-
headers: {
5-
"Content-Type": "application/json"
6-
},
7-
body: JSON.stringify({
8-
workspace_id,
9-
user_id
10-
})
11-
})
12-
const { token } = await response.json()
13-
return token
2+
try {
3+
const response = await fetch(
4+
"https://chatgpt-to-notion.onrender.com/token",
5+
{
6+
method: "POST",
7+
headers: {
8+
"Content-Type": "application/json"
9+
},
10+
body: JSON.stringify({
11+
workspace_id,
12+
user_id
13+
})
14+
}
15+
)
16+
const { token } = await response.json()
17+
return token
18+
} catch (err) {
19+
console.error(err)
20+
}
1421
}
1522

1623
type GetTokenParams = {

0 commit comments

Comments
 (0)