Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Jason Sadler committed Jun 25, 2019
1 parent fd2ca90 commit 8ab359e
Show file tree
Hide file tree
Showing 15 changed files with 188 additions and 259 deletions.
92 changes: 48 additions & 44 deletions browser/extensions/api/brave_rewards_api.cc
Original file line number Diff line number Diff line change
Expand Up @@ -106,10 +106,11 @@ BraveRewardsTipTwitterUserFunction::Run() {
if (rewards_service) {
AddRef();
std::map<std::string, std::string> args;
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["user_id"] = params->media_meta_data.user_id;
args["twitter_name"] = params->media_meta_data.twitter_name;
args["screen_name"] = params->media_meta_data.screen_name;
rewards_service->SaveInlineMediaInfo(
params->media_meta_data.media_type,
args,
base::Bind(&BraveRewardsTipTwitterUserFunction::
OnTwitterPublisherInfoSaved,
Expand Down Expand Up @@ -143,10 +144,11 @@ ExtensionFunction::ResponseAction BraveRewardsTipRedditUserFunction::Run() {
if (rewards_service) {
AddRef();
std::map<std::string, std::string> args;
args["user_name"] = params->reddit_meta_data.user_name;
args["post_text"] = params->reddit_meta_data.post_text;
args["post_rel_date"] = params->reddit_meta_data.post_rel_date;
rewards_service->SaveRedditPublisherInfo(
args["user_name"] = params->media_meta_data.user_name;
args["post_text"] = params->media_meta_data.post_text;
args["post_rel_date"] = params->media_meta_data.post_rel_date;
rewards_service->SaveInlineMediaInfo(
params->media_meta_data.media_type,
args,
base::Bind(
&BraveRewardsTipRedditUserFunction::OnRedditPublisherInfoSaved,
Expand Down Expand Up @@ -184,17 +186,20 @@ void BraveRewardsTipTwitterUserFunction::OnTwitterPublisherInfoSaved(
params_dict->SetString("publisherKey", publisher_info->id);
params_dict->SetString("url", publisher_info->url);

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));
base::Value media_meta_data_dict(base::Value::Type::DICTIONARY);
media_meta_data_dict.SetStringKey("twitter_name", publisher_info->name);
media_meta_data_dict.SetStringKey("mediaType",
params->media_meta_data.media_type);
media_meta_data_dict.SetStringKey("screenName",
params->media_meta_data.screen_name);
media_meta_data_dict.SetStringKey("userId", params->media_meta_data.user_id);
media_meta_data_dict.SetStringKey("tweetId",
params->media_meta_data.tweet_id);
media_meta_data_dict.SetDoubleKey("tweetTimestamp",
params->media_meta_data.tweet_timestamp);
media_meta_data_dict.SetStringKey("tweetText",
params->media_meta_data.tweet_text);
params_dict->SetPath("mediaMetaData", std::move(media_meta_data_dict));

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

Expand All @@ -213,31 +218,30 @@ void BraveRewardsTipRedditUserFunction::OnRedditPublisherInfoSaved(

content::WebContents* contents = nullptr;
if (!ExtensionTabUtil::GetTabById(
params->tab_id,
Profile::FromBrowserContext(browser_context()),
false,
nullptr,
nullptr,
&contents,
nullptr)) {
return;
}

std::unique_ptr<base::DictionaryValue> params_dict =
std::make_unique<base::DictionaryValue>();
params_dict->SetStringKey("publisherKey", publisher_info->id);
params_dict->SetStringKey("url", publisher_info->url);

base::Value reddit_meta_data_dict(base::Value::Type::DICTIONARY);
reddit_meta_data_dict.SetStringKey("name", publisher_info->name);
reddit_meta_data_dict.SetStringKey(
"userName", params->reddit_meta_data.user_name);
reddit_meta_data_dict.SetStringKey(
"postText", params->reddit_meta_data.post_text);
reddit_meta_data_dict.SetStringKey(
"postRelDate", params->reddit_meta_data.post_rel_date);
params_dict->SetPath(
"redditMetaData", std::move(reddit_meta_data_dict));
params->tab_id,
Profile::FromBrowserContext(browser_context()),
false,
nullptr,
nullptr,
&contents,
nullptr)) {
return;
}

auto params_dict = std::make_unique<base::DictionaryValue>();
params_dict->SetString("publisherKey", publisher_info->id);
params_dict->SetString("url", publisher_info->url);

base::Value media_meta_data_dict(base::Value::Type::DICTIONARY);
media_meta_data_dict.SetStringKey("mediaType",
params->media_meta_data.media_type);
media_meta_data_dict.SetStringKey("userName",
params->media_meta_data.user_name);
media_meta_data_dict.SetStringKey("postText",
params->media_meta_data.post_text);
media_meta_data_dict.SetStringKey("postRelDate",
params->media_meta_data.post_rel_date);
params_dict->SetPath("mediaMetaData", std::move(media_meta_data_dict));

::brave_rewards::OpenTipDialog(
contents, std::move(params_dict));
Expand Down
14 changes: 11 additions & 3 deletions common/extensions/api/brave_rewards.json
Original file line number Diff line number Diff line change
Expand Up @@ -396,14 +396,18 @@
"type": "integer"
},
{
"name": "tweetMetaData",
"name": "mediaMetaData",
"type": "object",
"properties": {
"mediaType": {
"type": "string",
"description": "description used in UI to identify the media type"
},
"userId": {
"type": "string",
"description": "User ID of tweet author"
},
"name": {
"twitterName": {
"type": "string",
"description": "Name of tweet author"
},
Expand Down Expand Up @@ -437,9 +441,13 @@
"type": "integer"
},
{
"name": "redditMetaData",
"name": "mediaMetaData",
"type": "object",
"properties": {
"mediaType": {
"type": "string",
"description": "description used in UI to identify the media type"
},
"userName": {
"type": "string",
"description": "User name of the Reddit post/comment author"
Expand Down
5 changes: 3 additions & 2 deletions components/brave_ads/browser/ads_service_impl_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -142,8 +142,9 @@ class MockRewardsService : public RewardsService {
brave_rewards::RefreshPublisherCallback));
MOCK_METHOD0(GetAllNotifications,
const brave_rewards::RewardsNotificationService::RewardsNotificationsMap&());
MOCK_METHOD2(SaveTwitterPublisherInfo,
void(const std::map<std::string, std::string>&,
MOCK_METHOD3(SaveInlineMediaInfo,
void(const std::string&,
const std::map<std::string, std::string>&,
brave_rewards::SaveMediaInfoCallback));
MOCK_METHOD2(SetInlineTipSetting,
void(const std::string& key, bool enabled));
Expand Down
6 changes: 2 additions & 4 deletions components/brave_rewards/browser/rewards_service.h
Original file line number Diff line number Diff line change
Expand Up @@ -225,10 +225,8 @@ class RewardsService : public KeyedService {
virtual const RewardsNotificationService::RewardsNotificationsMap&
GetAllNotifications() = 0;

virtual void SaveTwitterPublisherInfo(
const std::map<std::string, std::string>& args,
SaveMediaInfoCallback callback) = 0;
virtual void SaveRedditPublisherInfo(
virtual void SaveInlineMediaInfo(
const std::string& media_type,
const std::map<std::string, std::string>& args,
SaveMediaInfoCallback callback) = 0;

Expand Down
41 changes: 5 additions & 36 deletions components/brave_rewards/browser/rewards_service_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2214,39 +2214,7 @@ void RewardsServiceImpl::SaveRecurringTip(
AsWeakPtr()));
}

void RewardsServiceImpl::OnTwitterPublisherInfoSaved(
SaveMediaInfoCallback callback,
int32_t result,
ledger::PublisherInfoPtr publisher) {
if (!Connected()) {
std::move(callback).Run(nullptr);
return;
}
if (Connected()) {
ledger::Result result_converted = static_cast<ledger::Result>(result);
std::unique_ptr<brave_rewards::ContentSite> site;

if (result_converted == ledger::Result::LEDGER_OK) {
site = std::make_unique<brave_rewards::ContentSite>(
PublisherInfoToContentSite(*publisher));
}

std::move(callback).Run(std::move(site));
}
}

void RewardsServiceImpl::SaveTwitterPublisherInfo(
const std::map<std::string, std::string>& args,
SaveMediaInfoCallback callback) {
bat_ledger_->SaveMediaInfo(
"twitter",
mojo::MapToFlatMap(args),
base::BindOnce(&RewardsServiceImpl::OnTwitterPublisherInfoSaved,
AsWeakPtr(),
std::move(callback)));
}

void RewardsServiceImpl::OnRedditPublisherInfoSaved(
void RewardsServiceImpl::OnMediaInlineInfoSaved(
SaveMediaInfoCallback callback,
int32_t result,
ledger::PublisherInfoPtr publisher) {
Expand All @@ -2265,13 +2233,14 @@ void RewardsServiceImpl::OnRedditPublisherInfoSaved(
std::move(callback).Run(std::move(site));
}

void RewardsServiceImpl::SaveRedditPublisherInfo(
void RewardsServiceImpl::SaveInlineMediaInfo(
const std::string& media_type,
const std::map<std::string, std::string>& args,
SaveMediaInfoCallback callback) {
bat_ledger_->SaveMediaInfo(
"reddit",
media_type,
mojo::MapToFlatMap(args),
base::BindOnce(&RewardsServiceImpl::OnRedditPublisherInfoSaved,
base::BindOnce(&RewardsServiceImpl::OnMediaInlineInfoSaved,
AsWeakPtr(),
std::move(callback)));
}
Expand Down
12 changes: 3 additions & 9 deletions components/brave_rewards/browser/rewards_service_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,11 +218,8 @@ class RewardsServiceImpl : public RewardsService,

void SetContributionAmount(const double amount) const override;

void SaveTwitterPublisherInfo(
const std::map<std::string, std::string>& args,
SaveMediaInfoCallback callback) override;

void SaveRedditPublisherInfo(
void SaveInlineMediaInfo(
const std::string& media_type,
const std::map<std::string, std::string>& args,
SaveMediaInfoCallback callback) override;

Expand Down Expand Up @@ -562,10 +559,7 @@ class RewardsServiceImpl : public RewardsService,
RefreshPublisherCallback callback,
const std::string& publisher_key,
bool verified);
void OnTwitterPublisherInfoSaved(SaveMediaInfoCallback callback,
int32_t result,
ledger::PublisherInfoPtr publisher);
void OnRedditPublisherInfoSaved(
void OnMediaInlineInfoSaved(
SaveMediaInfoCallback callback,
int32_t result,
ledger::PublisherInfoPtr publisher);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ chrome.runtime.onConnect.addListener(function () {
})
})

const tipTwitterUser = (tweetMetaData: RewardsTip.TweetMetaData) => {
const tipTwitterMedia = (mediaMetaData: RewardsTip.MediaMetaData) => {
mediaMetaData.mediaType = 'twitter'
chrome.tabs.query({
active: true,
windowId: chrome.windows.WINDOW_ID_CURRENT
Expand All @@ -91,11 +92,12 @@ const tipTwitterUser = (tweetMetaData: RewardsTip.TweetMetaData) => {
if (tabId === undefined) {
return
}
chrome.braveRewards.tipTwitterUser(tabId, tweetMetaData)
chrome.braveRewards.tipTwitterUser(tabId, mediaMetaData)
})
}

const tipRedditUser = (redditMetaData: RewardsTip.RedditMetaData) => {
const tipRedditMedia = (mediaMetaData: RewardsTip.MediaMetaData) => {
mediaMetaData.mediaType = 'reddit'
chrome.tabs.query({
active: true,
windowId: chrome.windows.WINDOW_ID_CURRENT
Expand All @@ -107,19 +109,22 @@ const tipRedditUser = (redditMetaData: RewardsTip.RedditMetaData) => {
if (tabId === undefined) {
return
}
chrome.braveRewards.tipRedditUser(tabId, redditMetaData)
chrome.braveRewards.tipRedditUser(tabId, mediaMetaData)
})
}

chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
const action = typeof msg === 'string' ? msg : msg.type
switch (action) {
case 'tipTwitterUser': {
tipTwitterUser(msg.tweetMetaData)
return false
}
case 'tipRedditUser': {
tipRedditUser(msg.redditMetaData)
case 'tipInlineMedia': {
switch (msg.mediaMetaData.mediaType) {
case 'twitter':
tipTwitterMedia(msg.mediaMetaData)
break
case 'reddit':
tipRedditMedia(msg.mediaMetaData)
break
}
return false
}
case 'rewardsEnabled': {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ const isOldReddit = () => {
redditUrl.hostname.startsWith('np')
}

const getOldRedditMetaData = (redditPost: Element): RewardsTip.RedditMetaData | null => {
const getOldRedditMetaData = (redditPost: Element): RewardsTip.MediaMetaData | null => {
if (!redditPost) {
return null
}
Expand Down Expand Up @@ -55,13 +55,14 @@ const getOldRedditMetaData = (redditPost: Element): RewardsTip.RedditMetaData |
}

return {
mediaType: 'reddit',
userName: userName,
postText: postText || '',
postRelDate: postRelDate || ''
}
}

const getRedditMetaData = (redditPost: Element): RewardsTip.RedditMetaData | null => {
const getRedditMetaData = (redditPost: Element): RewardsTip.MediaMetaData | null => {
if (!redditPost) {
return null
}
Expand Down Expand Up @@ -117,6 +118,7 @@ const getRedditMetaData = (redditPost: Element): RewardsTip.RedditMetaData | nul
}

return {
mediaType: 'reddit',
userName: userName,
postText: postText || '',
postRelDate: postRelDate
Expand Down Expand Up @@ -284,7 +286,7 @@ const createBraveTipActionForOld = (redditPost: Element) => {
braveTipButton.onclick = function (event) {
const redditMetaData = getOldRedditMetaData(redditPost)
if (redditMetaData) {
const msg = { type: 'tipRedditUser', redditMetaData: redditMetaData }
const msg = { type: 'tipInlineMedia', mediaMetaData: redditMetaData }
chrome.runtime.sendMessage(msg)
}
event.stopPropagation()
Expand All @@ -308,7 +310,7 @@ const createBraveTipAction = (redditPost: Element, isPost: boolean) => {
braveTipButton.onclick = function (event) {
const redditMetaData = getRedditMetaData(redditPost)
if (redditMetaData) {
const msg = { type: 'tipRedditUser', redditMetaData: redditMetaData }
const msg = { type: 'tipInlineMedia', mediaMetaData: redditMetaData }
chrome.runtime.sendMessage(msg)
}
event.stopPropagation()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { getMessage } from '../background/api/locale_api'

let timeout: any = null

const getTweetMetaData = (tweet: Element): RewardsTip.TweetMetaData | null => {
const getTweetMetaData = (tweet: Element): RewardsTip.MediaMetaData | null => {
if (!tweet) {
return null
}
Expand All @@ -27,7 +27,8 @@ const getTweetMetaData = (tweet: Element): RewardsTip.TweetMetaData | null => {
const tweetTimestamp = tweetTimestampElements[0].getAttribute('data-time') || ''

return {
name: tweet.getAttribute('data-name') || '',
mediaType: 'twitter',
twitterName: tweet.getAttribute('data-name') || '',
screenName: tweet.getAttribute('data-screen-name') || '',
userId: tweet.getAttribute('data-user-id') || '',
tweetId: tweet.getAttribute('data-tweet-id') || '',
Expand Down Expand Up @@ -61,7 +62,7 @@ const createBraveTipAction = (tweet: Element) => {
braveTipButton.onclick = function (event) {
const tweetMetaData = getTweetMetaData(tweet)
if (tweetMetaData) {
const msg = { type: 'tipTwitterUser', tweetMetaData: tweetMetaData }
const msg = { type: 'tipInlineMedia', mediaMetaData: tweetMetaData }
chrome.runtime.sendMessage(msg)
}
event.stopPropagation()
Expand Down

0 comments on commit 8ab359e

Please sign in to comment.