+
+ if (addr.kind() === 'ipv4') {
+ const addrV4 = ipaddr.IPv4.parse(ip)
+ const rangeList = {
+ whitelist: CONFIG.SIGNUP.FILTERS.CIDR.WHITELIST.filter(cidr => isCidr.v4(cidr))
+ .map(cidr => ipaddr.IPv4.parseCIDR(cidr)),
+ blacklist: CONFIG.SIGNUP.FILTERS.CIDR.BLACKLIST.filter(cidr => isCidr.v4(cidr))
+ .map(cidr => ipaddr.IPv4.parseCIDR(cidr))
+ }
+ matched = ipaddr.subnetMatch(addrV4, rangeList, 'unknown')
+ } else if (addr.kind() === 'ipv6') {
+ const addrV6 = ipaddr.IPv6.parse(ip)
+ const rangeList = {
+ whitelist: CONFIG.SIGNUP.FILTERS.CIDR.WHITELIST.filter(cidr => isCidr.v6(cidr))
+ .map(cidr => ipaddr.IPv6.parseCIDR(cidr)),
+ blacklist: CONFIG.SIGNUP.FILTERS.CIDR.BLACKLIST.filter(cidr => isCidr.v6(cidr))
+ .map(cidr => ipaddr.IPv6.parseCIDR(cidr))
+ }
+ matched = ipaddr.subnetMatch(addrV6, rangeList, 'unknown')
+ }
+
+ return !excludeList.includes(matched)
+}
+
+function computeResolutionsToTranscode (videoFileHeight: number) {
+ const resolutionsEnabled: number[] = []
+ const configResolutions = CONFIG.TRANSCODING.RESOLUTIONS
+
+ // Put in the order we want to proceed jobs
+ const resolutions = [
+ VideoResolution.H_480P,
+ VideoResolution.H_360P,
+ VideoResolution.H_720P,
+ VideoResolution.H_240P,
+ VideoResolution.H_1080P
+ ]
+
+ for (const resolution of resolutions) {
+ if (configResolutions[ resolution + 'p' ] === true && videoFileHeight > resolution) {
+ resolutionsEnabled.push(resolution)
+ }
+ }
+
+ return resolutionsEnabled