| Index: sitescripts/stats/common.py |
| =================================================================== |
| deleted file mode 100644 |
| --- a/sitescripts/stats/common.py |
| +++ /dev/null |
| @@ -1,171 +0,0 @@ |
| -# This file is part of the Adblock Plus web scripts, |
| -# Copyright (C) 2006-present eyeo GmbH |
| -# |
| -# Adblock Plus is free software: you can redistribute it and/or modify |
| -# it under the terms of the GNU General Public License version 3 as |
| -# published by the Free Software Foundation. |
| -# |
| -# Adblock Plus is distributed in the hope that it will be useful, |
| -# but WITHOUT ANY WARRANTY; without even the implied warranty of |
| -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| -# GNU General Public License for more details. |
| -# |
| -# You should have received a copy of the GNU General Public License |
| -# along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
| - |
| -import re |
| -import hashlib |
| - |
| - |
| -def filename_encode(name): |
| - """ |
| - This encodes any string to a valid file name while ensuring that the |
| - original string can still be reconstructed. All characters except 0-9, A-Z, |
| - the period and underscore are encoded as "-12cd" where "12cd" stands for the |
| - hexadecimal representation of the character's ordinal. File names longer |
| - than 150 characters will be still be unique but no longer reversible due to |
| - file system limitations. |
| - """ |
| - result = re.sub(r'[^\w\.]', lambda match: '-%04x' % ord(match.group(0)), name) |
| - if len(result) > 150: |
| - result = result[:150] + '--%s' % hashlib.md5(result[150:]).hexdigest() |
| - return result |
| - |
| - |
| -def filename_decode(path): |
| - """ |
| - This reconstructs a string encoded with filename_encode(). |
| - """ |
| - path = re.sub(r'--[0-9A-Fa-f]{32}', u'\u2026', path) |
| - path = re.sub(r'-([0-9a-f]{4})', lambda match: unichr(int(match.group(1), 16)), path) |
| - return path |
| - |
| - |
| -basic_fields = [ |
| - { |
| - 'name': 'day', |
| - 'title': 'Days of month', |
| - 'coltitle': 'Day', |
| - 'showaverage': True, |
| - 'defaultcount': 31, |
| - 'sort': lambda obj: sorted(obj.items(), key=lambda (k, v): int(k)), |
| - }, |
| - { |
| - 'name': 'weekday', |
| - 'title': 'Days of week', |
| - 'coltitle': 'Weekday', |
| - 'showaverage': True, |
| - 'sort': lambda obj: sorted(obj.items(), key=lambda (k, v): int(k)), |
| - 'isspecial': lambda weekday: weekday == 5 or weekday == 6, |
| - }, |
| - { |
| - 'name': 'hour', |
| - 'title': 'Hours of day', |
| - 'coltitle': 'Hour', |
| - 'showaverage': True, |
| - 'sort': lambda obj: sorted(obj.items(), key=lambda (k, v): int(k)), |
| - }, |
| - { |
| - 'name': 'country', |
| - 'title': 'Countries', |
| - 'coltitle': 'Country', |
| - }, |
| - { |
| - 'name': 'ua', |
| - 'title': 'Browsers', |
| - 'coltitle': 'Browser', |
| - }, |
| - { |
| - 'name': 'fullua', |
| - 'title': 'Browser versions', |
| - 'coltitle': 'Browser version', |
| - }, |
| - { |
| - 'name': 'referrer', |
| - 'title': 'Referrers', |
| - 'coltitle': 'Referrer', |
| - }, |
| - { |
| - 'name': 'status', |
| - 'title': 'Status codes', |
| - 'coltitle': 'Status code', |
| - }, |
| - { |
| - 'name': 'mirror', |
| - 'title': 'Download mirrors', |
| - 'coltitle': 'Download mirror', |
| - }, |
| -] |
| - |
| -downloader_fields = [ |
| - { |
| - 'name': 'addonName', |
| - 'title': 'Extensions', |
| - 'coltitle': 'Extension', |
| - }, |
| - { |
| - 'name': 'fullAddon', |
| - 'title': 'Extension versions', |
| - 'coltitle': 'Extension version', |
| - }, |
| - { |
| - 'name': 'application', |
| - 'title': 'Host applications', |
| - 'coltitle': 'Host application', |
| - }, |
| - { |
| - 'name': 'fullApplication', |
| - 'title': 'Host application versions', |
| - 'coltitle': 'Host application version', |
| - }, |
| - { |
| - 'name': 'platform', |
| - 'title': 'Platforms', |
| - 'coltitle': 'Platform', |
| - }, |
| - { |
| - 'name': 'fullPlatform', |
| - 'title': 'Platform versions', |
| - 'coltitle': 'Platform version', |
| - }, |
| - { |
| - 'name': 'downloadInterval', |
| - 'title': 'Download intervals', |
| - 'coltitle': 'Download interval', |
| - }, |
| - { |
| - 'name': 'previousDownload', |
| - 'hidden': True, |
| - }, |
| - { |
| - 'name': 'firstDownload', |
| - 'title': 'Initial download', |
| - 'filter': True, |
| - }, |
| - { |
| - 'name': 'firstInDay', |
| - 'title': 'First download this day', |
| - 'filter': True, |
| - }, |
| - { |
| - 'name': 'firstInWeek', |
| - 'title': 'First download this week', |
| - 'filter': True, |
| - }, |
| - { |
| - 'name': 'firstInMonth', |
| - 'title': 'First download this month', |
| - 'filter': True, |
| - }, |
| -] |
| - |
| -install_fields = [ |
| - { |
| - 'name': 'installType', |
| - 'title': 'Install types', |
| - 'coltitle': 'Install type', |
| - }, |
| -] |
| - |
| - |
| -fields = basic_fields + downloader_fields + install_fields |