1
0

fix download counts for ipv4 ips (#750)

This commit is contained in:
Geometrically
2023-11-08 20:55:08 -07:00
committed by GitHub
parent aab95444a8
commit a818199b5a
2 changed files with 14 additions and 12 deletions
+1 -2
View File
@@ -4,8 +4,7 @@ use actix_web::web;
use database::redis::RedisPool; use database::redis::RedisPool;
use log::{info, warn}; use log::{info, warn};
use queue::{ use queue::{
analytics::AnalyticsQueue, payouts::PayoutsQueue, session::AuthQueue, analytics::AnalyticsQueue, payouts::PayoutsQueue, session::AuthQueue, socket::ActiveSockets,
socket::ActiveSockets,
}; };
use scheduler::Scheduler; use scheduler::Scheduler;
use sqlx::Postgres; use sqlx::Postgres;
+7 -4
View File
@@ -1,10 +1,10 @@
use crate::database::models::DatabaseError; use crate::database::models::DatabaseError;
use crate::database::redis::RedisPool;
use crate::models::analytics::{Download, PageView, Playtime}; use crate::models::analytics::{Download, PageView, Playtime};
use crate::routes::ApiError; use crate::routes::ApiError;
use dashmap::{DashMap, DashSet}; use dashmap::{DashMap, DashSet};
use redis::cmd; use redis::cmd;
use sqlx::PgPool; use sqlx::PgPool;
use crate::database::redis::RedisPool;
const DOWNLOADS_NAMESPACE: &str = "downloads"; const DOWNLOADS_NAMESPACE: &str = "downloads";
@@ -35,10 +35,13 @@ impl AnalyticsQueue {
} }
pub fn add_download(&self, download: Download) { pub fn add_download(&self, download: Download) {
let ip_stripped = if let Some(ip) = download.ip.to_ipv4_mapped() {
let octets = ip.octets();
u64::from_be_bytes([0, 0, 0, 0, octets[0], octets[1], octets[2], octets[3]])
} else {
let octets = download.ip.octets(); let octets = download.ip.octets();
let ip_stripped = u64::from_be_bytes([ u64::from_be_bytes([0, 0, 0, 0, octets[0], octets[1], octets[2], octets[3]])
octets[0], octets[1], octets[2], octets[3], octets[4], octets[5], octets[6], octets[7], };
]);
self.downloads_queue self.downloads_queue
.insert(format!("{}-{}", ip_stripped, download.project_id), download); .insert(format!("{}-{}", ip_stripped, download.project_id), download);
} }