Skip to content

Commit

Permalink
Add debugger; Change a parser of parse post
Browse files Browse the repository at this point in the history
  • Loading branch information
Jack-Works committed Jul 6, 2019
1 parent 20ca91a commit b095f77
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 23 deletions.
6 changes: 3 additions & 3 deletions src/extension/background-script/CryptoService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -234,12 +234,12 @@ export async function verifyOthersProve(bio: string, others: PersonIdentifier):
//#region Append decryptor in future
/**
* Get already shared target of the post
* @param postIdentifier Post identifier
* @param postSalt
*/
export async function getSharedListOfPost(postIdentifier: string): Promise<Person[]> {
export async function getSharedListOfPost(postSalt: string): Promise<Person[]> {
const post = await gun
.get('posts')
.get(postIdentifier)
.get(postSalt)
.once().then!()
if (!post) return []
delete post._
Expand Down
12 changes: 12 additions & 0 deletions src/extension/background-script/Debugger.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { getSharedListOfPost } from './CryptoService'
import { deconstructPayload } from '../../utils/type-transform/Payload'
import { gun } from '../../network/gun/version.1'

Object.assign(window, {
debug: {
getPostAESKeyShareTarget(post: string) {
return getSharedListOfPost(deconstructPayload(post)!.iv)
},
},
gun1: gun,
})
42 changes: 25 additions & 17 deletions src/extension/content-script/injections/Posts.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ import Services from '../../service'
import { PersonIdentifier, PostIdentifier } from '../../../database/type'
import { Person } from '../../../database'
import { isMobile } from '../../../social-network/facebook.com/isMobile'
import { styled } from '@material-ui/core/styles'

const Debug = styled('div')({ display: 'none' })

const posts = new LiveSelector().querySelectorAll<HTMLDivElement>(
isMobile ? '.story_body_container ' : '.userContent, .userContent+*+div>div>div>div>div',
Expand Down Expand Up @@ -43,23 +46,28 @@ function PostInspector(props: PostInspectorProps) {
props.needZip()
const { iv, ownersAESKeyEncrypted } = type.encryptedPost
return (
<DecryptPostUI.UI
requestAppendDecryptor={async people => {
setAlreadySelectedPreviously(alreadySelectedPreviously.concat(people))
return Services.Crypto.appendShareTarget(
iv,
ownersAESKeyEncrypted,
iv,
people.map(x => x.identifier),
whoAmI,
)
}}
alreadySelectedPreviously={alreadySelectedPreviously}
people={people}
encryptedText={post}
whoAmI={whoAmI}
postBy={postBy}
/>
<>
<Debug children={post} data-id="post" />
<Debug children={postBy.toText()} data-id="post by" />
<Debug children={postId} data-id="post id" />
<DecryptPostUI.UI
requestAppendDecryptor={async people => {
setAlreadySelectedPreviously(alreadySelectedPreviously.concat(people))
return Services.Crypto.appendShareTarget(
iv,
ownersAESKeyEncrypted,
iv,
people.map(x => x.identifier),
whoAmI,
)
}}
alreadySelectedPreviously={alreadySelectedPreviously}
people={people}
encryptedText={post}
whoAmI={whoAmI}
postBy={postBy}
/>
</>
)
} else if (type.provePost) {
Services.People.uploadProvePostUrl(new PostIdentifier(postBy, postId))
Expand Down
1 change: 1 addition & 0 deletions src/extension/service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ if (GetContext() === 'background') {
require('../tests/1toN')
require('../tests/sign&verify')
require('../tests/friendship-discover')
require('./background-script/Debugger')
Object.assign(window, {
db: {
avatar: require('../database/avatar'),
Expand Down
6 changes: 3 additions & 3 deletions src/social-network/facebook.com/fetch-prove-post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { getPostUrlAtFacebook } from './parse-username'
export async function fetchFacebookProvePost(post: PostIdentifier<PersonIdentifier>) {
const doc = await parseFacebookStaticHTML(getPostUrlAtFacebook(post))
if (!doc) throw new Error("Can't parse the page")
const postDom = doc.querySelector<HTMLDivElement>('.userContent,p')
if (!postDom) throw new Error('No post found')
return postDom.innerText
const content = doc.body.innerText.match(/(🔒.+🔒)/)
if (content && content[0].length) return content[0]
throw new Error('Not found in post')
}

0 comments on commit b095f77

Please sign in to comment.