mirror of
https://github.com/shlinkio/shlink-web-client.git
synced 2026-04-25 16:06:19 +00:00
Created VisitsTable
This commit is contained in:
@@ -1,46 +1,5 @@
|
||||
import { isNil, isEmpty, memoizeWith, prop } from 'ramda';
|
||||
|
||||
const osFromUserAgent = (userAgent) => {
|
||||
const lowerUserAgent = userAgent.toLowerCase();
|
||||
|
||||
switch (true) {
|
||||
case lowerUserAgent.indexOf('linux') >= 0:
|
||||
return 'Linux';
|
||||
case lowerUserAgent.indexOf('windows') >= 0:
|
||||
return 'Windows';
|
||||
case lowerUserAgent.indexOf('mac') >= 0:
|
||||
return 'MacOS';
|
||||
case lowerUserAgent.indexOf('mobi') >= 0:
|
||||
return 'Mobile';
|
||||
default:
|
||||
return 'Others';
|
||||
}
|
||||
};
|
||||
|
||||
const browserFromUserAgent = (userAgent) => {
|
||||
const lowerUserAgent = userAgent.toLowerCase();
|
||||
|
||||
switch (true) {
|
||||
case lowerUserAgent.indexOf('opera') >= 0 || lowerUserAgent.indexOf('opr') >= 0:
|
||||
return 'Opera';
|
||||
case lowerUserAgent.indexOf('firefox') >= 0:
|
||||
return 'Firefox';
|
||||
case lowerUserAgent.indexOf('chrome') >= 0:
|
||||
return 'Chrome';
|
||||
case lowerUserAgent.indexOf('safari') >= 0:
|
||||
return 'Safari';
|
||||
case lowerUserAgent.indexOf('msie') >= 0:
|
||||
return 'Internet Explorer';
|
||||
default:
|
||||
return 'Others';
|
||||
}
|
||||
};
|
||||
|
||||
const extractDomain = (url) => {
|
||||
const domain = url.indexOf('://') > -1 ? url.split('/')[2] : url.split('/')[0];
|
||||
|
||||
return domain.split(':')[0];
|
||||
};
|
||||
import { isEmpty, isNil, memoizeWith, prop } from 'ramda';
|
||||
import { browserFromUserAgent, extractDomain, osFromUserAgent } from '../../utils/helpers/visits';
|
||||
|
||||
const visitLocationHasProperty = (visitLocation, propertyName) =>
|
||||
!isNil(visitLocation)
|
||||
@@ -48,20 +7,19 @@ const visitLocationHasProperty = (visitLocation, propertyName) =>
|
||||
&& !isEmpty(visitLocation[propertyName]);
|
||||
|
||||
const updateOsStatsForVisit = (osStats, { userAgent }) => {
|
||||
const os = isNil(userAgent) ? 'Others' : osFromUserAgent(userAgent);
|
||||
const os = osFromUserAgent(userAgent);
|
||||
|
||||
osStats[os] = (osStats[os] || 0) + 1;
|
||||
};
|
||||
|
||||
const updateBrowsersStatsForVisit = (browsersStats, { userAgent }) => {
|
||||
const browser = isNil(userAgent) ? 'Others' : browserFromUserAgent(userAgent);
|
||||
const browser = browserFromUserAgent(userAgent);
|
||||
|
||||
browsersStats[browser] = (browsersStats[browser] || 0) + 1;
|
||||
};
|
||||
|
||||
const updateReferrersStatsForVisit = (referrersStats, { referer }) => {
|
||||
const notHasDomain = isNil(referer) || isEmpty(referer);
|
||||
const domain = notHasDomain ? 'Direct' : extractDomain(referer);
|
||||
const domain = extractDomain(referer);
|
||||
|
||||
referrersStats[domain] = (referrersStats[domain] || 0) + 1;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user