Skip to content

Commit

Permalink
Add timestamp to TweetMetaData and refactor passing of data
Browse files Browse the repository at this point in the history
  • Loading branch information
emerick committed Apr 26, 2019
1 parent b83ea7f commit 7042fb6
Show file tree
Hide file tree
Showing 6 changed files with 54 additions and 32 deletions.
23 changes: 14 additions & 9 deletions browser/extensions/api/brave_rewards_api.cc
Original file line number Diff line number Diff line change
Expand Up @@ -105,9 +105,9 @@ BraveRewardsDonateToTwitterUserFunction::Run() {
if (rewards_service) {
AddRef();
std::map<std::string, std::string> args;
args["user_id"] = params->user_id;
args["name"] = params->name;
args["screen_name"] = params->screen_name;
args["user_id"] = params->tweet_meta_data.user_id;
args["name"] = params->tweet_meta_data.name;
args["screen_name"] = params->tweet_meta_data.screen_name;
rewards_service->SaveTwitterPublisherInfo(
args,
base::Bind(&BraveRewardsDonateToTwitterUserFunction::
Expand Down Expand Up @@ -145,12 +145,17 @@ void BraveRewardsDonateToTwitterUserFunction::OnTwitterPublisherInfoSaved(
auto params_dict = std::make_unique<base::DictionaryValue>();
params_dict->SetString("publisherKey", publisher_info->id);

auto tweet_metadata_dict = std::make_unique<base::DictionaryValue>();
tweet_metadata_dict->SetString("name", publisher_info->name);
tweet_metadata_dict->SetString("screenName", params->screen_name);
tweet_metadata_dict->SetString("tweetId", params->tweet_id);
tweet_metadata_dict->SetString("tweetText", params->tweet_text);
params_dict->SetDictionary("tweetMetaData", std::move(tweet_metadata_dict));
auto tweet_meta_data_dict = std::make_unique<base::DictionaryValue>();
tweet_meta_data_dict->SetString("name", publisher_info->name);
tweet_meta_data_dict->SetString("screenName",
params->tweet_meta_data.screen_name);
tweet_meta_data_dict->SetString("userId", params->tweet_meta_data.user_id);
tweet_meta_data_dict->SetString("tweetId", params->tweet_meta_data.tweet_id);
tweet_meta_data_dict->SetInteger("tweetTimestamp",
params->tweet_meta_data.tweet_timestamp);
tweet_meta_data_dict->SetString("tweetText",
params->tweet_meta_data.tweet_text);
params_dict->SetDictionary("tweetMetaData", std::move(tweet_meta_data_dict));

::brave_rewards::OpenDonationDialog(contents, std::move(params_dict));

Expand Down
46 changes: 28 additions & 18 deletions common/extensions/api/brave_rewards.json
Original file line number Diff line number Diff line change
Expand Up @@ -360,24 +360,34 @@
"type": "integer"
},
{
"name": "userId",
"type": "string"
},
{
"name": "name",
"type": "string"
},
{
"name": "screenName",
"type": "string"
},
{
"name": "tweetId",
"type": "string"
},
{
"name": "tweetText",
"type": "string"
"name": "tweetMetaData",
"type": "object",
"properties": {
"userId": {
"type": "string",
"description": "User ID of tweet author"
},
"name": {
"type": "string",
"description": "Name of tweet author"
},
"screenName": {
"type": "string",
"description": "Twitter handle of tweet author"
},
"tweetId": {
"type": "string",
"description": "Unique tweet ID"
},
"tweetTimestamp": {
"type": "number",
"description": "Timestamp (in milliseconds) of tweet"
},
"tweetText": {
"type": "string",
"description": "Textual contents of tweet"
}
}
}
]
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ chrome.runtime.onConnect.addListener(function () {
})
})

const donateToTwitterUser = (userId: string, name: string, screenName: string, tweetId: string, tweetText: string) => {
const donateToTwitterUser = (tweetMetaData: RewardsDonate.TweetMetaData) => {
chrome.tabs.query({
active: true,
windowId: chrome.windows.WINDOW_ID_CURRENT
Expand All @@ -90,15 +90,15 @@ const donateToTwitterUser = (userId: string, name: string, screenName: string, t
if (tabId === undefined) {
return
}
chrome.braveRewards.donateToTwitterUser(tabId, userId, name, screenName, tweetId, tweetText)
chrome.braveRewards.donateToTwitterUser(tabId, tweetMetaData)
})
}

chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
const action = typeof msg === 'string' ? msg : msg.type
switch (action) {
case 'donateToTwitterUser': {
donateToTwitterUser(msg.userId, msg.name, msg.screenName, msg.tweetId, msg.tweetText)
donateToTwitterUser(msg.tweetMetaData)
return false
}
case 'rewardsEnabled': {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,17 @@ const getTweetMetaData = (tweet: Element): RewardsDonate.TweetMetaData | null =>
if (!tweetTextElements || tweetTextElements.length === 0) {
return null
}
const tweetTimestampElements = tweet.getElementsByClassName('js-short-timestamp')
if (!tweetTimestampElements || tweetTimestampElements.length === 0) {
return null
}
const tweetTimestamp = tweetTimestampElements[0].getAttribute('data-time-ms') || ''
return {
name: tweet.getAttribute('data-name') || '',
screenName: tweet.getAttribute('data-screen-name') || '',
userId: tweet.getAttribute('data-user-id') || '',
tweetId: tweet.getAttribute('data-tweet-id') || '',
tweetTimestamp: parseInt(tweetTimestamp, 10) || 0,
tweetText: tweetTextElements[0].textContent || ''
}
}
Expand All @@ -34,7 +40,7 @@ const createBraveTipAction = (tweet: Element) => {
braveTipButton.onclick = function (event) {
const tweetMetaData = getTweetMetaData(tweet)
if (tweetMetaData) {
const msg = { type: 'donateToTwitterUser', ...tweetMetaData }
const msg = { type: 'donateToTwitterUser', tweetMetaData: tweetMetaData }
chrome.runtime.sendMessage(msg)
}
}
Expand Down
2 changes: 1 addition & 1 deletion components/definitions/chromel.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ declare namespace chrome.dns {
declare namespace chrome.braveRewards {
const createWallet: () => {}
const donateToSite: (tabId: number, publisherKey: string) => {}
const donateToTwitterUser: (tabId: number, userId: string, name: string, screenName: string, tweetId: string, tweetText: string) => {}
const donateToTwitterUser: (tabId: number, tweetMetaData: RewardsDonate.TweetMetaData) => {}
const getPublisherData: (windowId: number, url: string, faviconUrl: string, publisherBlob: string | undefined) => {}
const getWalletProperties: () => {}
const getCurrentReport: () => {}
Expand Down
1 change: 1 addition & 0 deletions components/definitions/rewardsDonate.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ declare namespace RewardsDonate {
screenName: string
userId: string
tweetId: string
tweetTimestamp: number
tweetText: string
}

Expand Down

0 comments on commit 7042fb6

Please sign in to comment.