Skip to content
This repository has been archived by the owner on Dec 12, 2018. It is now read-only.

Commit

Permalink
Adds custom loader for the panel
Browse files Browse the repository at this point in the history
  • Loading branch information
NejcZdovc committed Dec 5, 2018
1 parent fde913e commit 4eda594
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 25 deletions.
2 changes: 2 additions & 0 deletions include/bat/ledger/ledger_client.h
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ class LEDGER_EXPORT LedgerClient {
PublisherInfoCallback callback) = 0;
virtual void LoadActivityInfo(ActivityInfoFilter filter,
PublisherInfoCallback callback) = 0;
virtual void LoadPanelPublisherInfo(ActivityInfoFilter filter,
PublisherInfoCallback callback) = 0;
virtual void LoadMediaPublisherInfo(const std::string& media_key,
PublisherInfoCallback callback) = 0;
virtual void SaveMediaPublisherInfo(const std::string& media_key,
Expand Down
2 changes: 1 addition & 1 deletion src/bat_get_media.cc
Original file line number Diff line number Diff line change
Expand Up @@ -654,7 +654,7 @@ void BatGetMedia::fetchPublisherDataFromDB(uint64_t windowId,
ledger::EXCLUDE_FILTER::FILTER_ALL,
false,
ledger_->GetReconcileStamp());
ledger_->GetActivityInfo(filter,
ledger_->GetPanelPublisherInfo(filter,
std::bind(&BatGetMedia::onFetchPublisherFromDBResponse,
this, _1, _2, windowId, visit_data, providerType, publisher_key));
}
Expand Down
63 changes: 39 additions & 24 deletions src/bat_publishers.cc
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ void onVisitSavedDummy(ledger::Result result,
void BatPublishers::saveVisit(const std::string& publisher_id,
const ledger::VisitData& visit_data,
const uint64_t& duration) {
if (!saveVisitAllowed() || publisher_id.empty()) {
if (!ledger_->GetRewardsMainEnabled() || publisher_id.empty()) {
return;
}

Expand Down Expand Up @@ -228,34 +228,50 @@ void BatPublishers::saveVisitInternal(
visit_data.local_year));
}

if (!ignoreMinTime(publisher_id) && duration < getPublisherMinVisitTime()) {
duration = 0;
}

publisher_info->favicon_url = visit_data.favicon_url;
publisher_info->name = visit_data.name;
publisher_info->provider = visit_data.provider;
publisher_info->url = visit_data.url;
publisher_info->visits += 1;
if (!isExcluded(publisher_info->id, publisher_info->excluded)) {
publisher_info->duration += duration;
} else {
publisher_info->verified = isVerified(publisher_info->id);

bool excluded = isExcluded(publisher_info->id, publisher_info->excluded);
bool ignore_time = ignoreMinTime(publisher_id);
if (duration == 0) {
ignore_time = false;
}
std::unique_ptr<ledger::PublisherInfo> panel_info = nullptr;

if (excluded) {
publisher_info->excluded = ledger::PUBLISHER_EXCLUDE::EXCLUDED;
if (new_visit) {
publisher_info->duration = 0; // don't log auto-excluded
}
}
publisher_info->score += concaveScore(duration);
publisher_info->verified = isVerified(publisher_info->id);
publisher_info->reconcile_stamp = ledger_->GetReconcileStamp();

auto media_info = std::make_unique<ledger::PublisherInfo>(*publisher_info);
// for new visits that are excluded or are not long enough or ac is off
if (new_visit &&
(excluded ||
!saveVisitAllowed() ||
(duration < getPublisherMinVisitTime() &&
!ignore_time))) {
panel_info = std::make_unique<ledger::PublisherInfo>(*publisher_info);
ledger_->SetPublisherInfo(std::move(publisher_info),
std::bind(&onVisitSavedDummy, _1, _2));
} else if (!excluded &&
saveVisitAllowed() &&
(duration > getPublisherMinVisitTime() || ignore_time)) {
publisher_info->visits += 1;
publisher_info->duration += duration;
publisher_info->score += concaveScore(duration);
publisher_info->reconcile_stamp = ledger_->GetReconcileStamp();

ledger_->SetActivityInfo(std::move(publisher_info),
std::bind(&onVisitSavedDummy, _1, _2));
panel_info = std::make_unique<ledger::PublisherInfo>(*publisher_info);
ledger_->SetActivityInfo(std::move(publisher_info),
std::bind(&onVisitSavedDummy, _1, _2));
}

if (window_id > 0) {
onPublisherActivity(ledger::Result::LEDGER_OK, std::move(media_info), window_id, visit_data);
if (panel_info && window_id > 0) {
onPublisherActivity(ledger::Result::LEDGER_OK,
std::move(panel_info),
window_id,
visit_data);
}
}

Expand Down Expand Up @@ -384,9 +400,8 @@ void BatPublishers::OnRestorePublishersInternal(bool success) {
setNumExcludedSites(0);
OnExcludedSitesChanged();
} else {
ledger_->Log(__func__,
ledger::LogLevel::LOG_ERROR,
{"Could not restore publishers."});
BLOG(ledger_, ledger::LogLevel::LOG_ERROR) <<
"Could not restore publishers.";
}
}

Expand Down Expand Up @@ -778,7 +793,7 @@ void BatPublishers::getPublisherActivityFromUrl(uint64_t windowId, const ledger:
new_data.url = visit_data.url;
new_data.favicon_url = "";

ledger_->GetActivityInfo(filter,
ledger_->GetPanelPublisherInfo(filter,
std::bind(&BatPublishers::onPublisherActivity, this, _1, _2, windowId, new_data));
}

Expand Down
7 changes: 7 additions & 0 deletions src/ledger_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,13 @@ void LedgerImpl::GetActivityInfo(
ledger_client_->LoadActivityInfo(filter, callback);
}


void LedgerImpl::GetPanelPublisherInfo(
const ledger::ActivityInfoFilter& filter,
ledger::PublisherInfoCallback callback) {
ledger_client_->LoadPanelPublisherInfo(filter, callback);
}

void LedgerImpl::GetMediaPublisherInfo(const std::string& media_key,
ledger::PublisherInfoCallback callback) {
ledger_client_->LoadMediaPublisherInfo(media_key, callback);
Expand Down
2 changes: 2 additions & 0 deletions src/ledger_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ class LedgerImpl : public ledger::Ledger,
ledger::PublisherInfoCallback callback) override;
void GetActivityInfo(const ledger::ActivityInfoFilter& filter,
ledger::PublisherInfoCallback callback) override;
void GetPanelPublisherInfo(const ledger::ActivityInfoFilter& filter,
ledger::PublisherInfoCallback callback);
void GetMediaPublisherInfo(const std::string& media_key,
ledger::PublisherInfoCallback callback) override;
void SetMediaPublisherInfo(const std::string& media_key,
Expand Down

0 comments on commit 4eda594

Please sign in to comment.