[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.216.32.251: ~ $
######################## BEGIN LICENSE BLOCK ########################
# The Original Code is Mozilla Communicator client code.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 1998
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#   Mark Pilgrim - port to Python
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library 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
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
# 02110-1301  USA
######################### END LICENSE BLOCK #########################

from .euctwfreq import (EUCTW_CHAR_TO_FREQ_ORDER, EUCTW_TABLE_SIZE,
                        EUCTW_TYPICAL_DISTRIBUTION_RATIO)
from .euckrfreq import (EUCKR_CHAR_TO_FREQ_ORDER, EUCKR_TABLE_SIZE,
                        EUCKR_TYPICAL_DISTRIBUTION_RATIO)
from .gb2312freq import (GB2312_CHAR_TO_FREQ_ORDER, GB2312_TABLE_SIZE,
                         GB2312_TYPICAL_DISTRIBUTION_RATIO)
from .big5freq import (BIG5_CHAR_TO_FREQ_ORDER, BIG5_TABLE_SIZE,
                       BIG5_TYPICAL_DISTRIBUTION_RATIO)
from .jisfreq import (JIS_CHAR_TO_FREQ_ORDER, JIS_TABLE_SIZE,
                      JIS_TYPICAL_DISTRIBUTION_RATIO)


class CharDistributionAnalysis(object):
    ENOUGH_DATA_THRESHOLD = 1024
    SURE_YES = 0.99
    SURE_NO = 0.01
    MINIMUM_DATA_THRESHOLD = 3

    def __init__(self):
        # Mapping table to get frequency order from char order (get from
        # GetOrder())
        self._char_to_freq_order = None
        self._table_size = None  # Size of above table
        # This is a constant value which varies from language to language,
        # used in calculating confidence.  See
        # http://www.mozilla.org/projects/intl/UniversalCharsetDetection.html
        # for further detail.
        self.typical_distribution_ratio = None
        self._done = None
        self._total_chars = None
        self._freq_chars = None
        self.reset()

    def reset(self):
        """reset analyser, clear any state"""
        # If this flag is set to True, detection is done and conclusion has
        # been made
        self._done = False
        self._total_chars = 0  # Total characters encountered
        # The number of characters whose frequency order is less than 512
        self._freq_chars = 0

    def feed(self, char, char_len):
        """feed a character with known length"""
        if char_len == 2:
            # we only care about 2-bytes character in our distribution analysis
            order = self.get_order(char)
        else:
            order = -1
        if order >= 0:
            self._total_chars += 1
            # order is valid
            if order < self._table_size:
                if 512 > self._char_to_freq_order[order]:
                    self._freq_chars += 1

    def get_confidence(self):
        """return confidence based on existing data"""
        # if we didn't receive any character in our consideration range,
        # return negative answer
        if self._total_chars <= 0 or self._freq_chars <= self.MINIMUM_DATA_THRESHOLD:
            return self.SURE_NO

        if self._total_chars != self._freq_chars:
            r = (self._freq_chars / ((self._total_chars - self._freq_chars)
                 * self.typical_distribution_ratio))
            if r < self.SURE_YES:
                return r

        # normalize confidence (we don't want to be 100% sure)
        return self.SURE_YES

    def got_enough_data(self):
        # It is not necessary to receive all data to draw conclusion.
        # For charset detection, certain amount of data is enough
        return self._total_chars > self.ENOUGH_DATA_THRESHOLD

    def get_order(self, byte_str):
        # We do not handle characters based on the original encoding string,
        # but convert this encoding string to a number, here called order.
        # This allows multiple encodings of a language to share one frequency
        # table.
        return -1


class EUCTWDistributionAnalysis(CharDistributionAnalysis):
    def __init__(self):
        super(EUCTWDistributionAnalysis, self).__init__()
        self._char_to_freq_order = EUCTW_CHAR_TO_FREQ_ORDER
        self._table_size = EUCTW_TABLE_SIZE
        self.typical_distribution_ratio = EUCTW_TYPICAL_DISTRIBUTION_RATIO

    def get_order(self, byte_str):
        # for euc-TW encoding, we are interested
        #   first  byte range: 0xc4 -- 0xfe
        #   second byte range: 0xa1 -- 0xfe
        # no validation needed here. State machine has done that
        first_char = byte_str[0]
        if first_char >= 0xC4:
            return 94 * (first_char - 0xC4) + byte_str[1] - 0xA1
        else:
            return -1


class EUCKRDistributionAnalysis(CharDistributionAnalysis):
    def __init__(self):
        super(EUCKRDistributionAnalysis, self).__init__()
        self._char_to_freq_order = EUCKR_CHAR_TO_FREQ_ORDER
        self._table_size = EUCKR_TABLE_SIZE
        self.typical_distribution_ratio = EUCKR_TYPICAL_DISTRIBUTION_RATIO

    def get_order(self, byte_str):
        # for euc-KR encoding, we are interested
        #   first  byte range: 0xb0 -- 0xfe
        #   second byte range: 0xa1 -- 0xfe
        # no validation needed here. State machine has done that
        first_char = byte_str[0]
        if first_char >= 0xB0:
            return 94 * (first_char - 0xB0) + byte_str[1] - 0xA1
        else:
            return -1


class GB2312DistributionAnalysis(CharDistributionAnalysis):
    def __init__(self):
        super(GB2312DistributionAnalysis, self).__init__()
        self._char_to_freq_order = GB2312_CHAR_TO_FREQ_ORDER
        self._table_size = GB2312_TABLE_SIZE
        self.typical_distribution_ratio = GB2312_TYPICAL_DISTRIBUTION_RATIO

    def get_order(self, byte_str):
        # for GB2312 encoding, we are interested
        #  first  byte range: 0xb0 -- 0xfe
        #  second byte range: 0xa1 -- 0xfe
        # no validation needed here. State machine has done that
        first_char, second_char = byte_str[0], byte_str[1]
        if (first_char >= 0xB0) and (second_char >= 0xA1):
            return 94 * (first_char - 0xB0) + second_char - 0xA1
        else:
            return -1


class Big5DistributionAnalysis(CharDistributionAnalysis):
    def __init__(self):
        super(Big5DistributionAnalysis, self).__init__()
        self._char_to_freq_order = BIG5_CHAR_TO_FREQ_ORDER
        self._table_size = BIG5_TABLE_SIZE
        self.typical_distribution_ratio = BIG5_TYPICAL_DISTRIBUTION_RATIO

    def get_order(self, byte_str):
        # for big5 encoding, we are interested
        #   first  byte range: 0xa4 -- 0xfe
        #   second byte range: 0x40 -- 0x7e , 0xa1 -- 0xfe
        # no validation needed here. State machine has done that
        first_char, second_char = byte_str[0], byte_str[1]
        if first_char >= 0xA4:
            if second_char >= 0xA1:
                return 157 * (first_char - 0xA4) + second_char - 0xA1 + 63
            else:
                return 157 * (first_char - 0xA4) + second_char - 0x40
        else:
            return -1


class SJISDistributionAnalysis(CharDistributionAnalysis):
    def __init__(self):
        super(SJISDistributionAnalysis, self).__init__()
        self._char_to_freq_order = JIS_CHAR_TO_FREQ_ORDER
        self._table_size = JIS_TABLE_SIZE
        self.typical_distribution_ratio = JIS_TYPICAL_DISTRIBUTION_RATIO

    def get_order(self, byte_str):
        # for sjis encoding, we are interested
        #   first  byte range: 0x81 -- 0x9f , 0xe0 -- 0xfe
        #   second byte range: 0x40 -- 0x7e,  0x81 -- oxfe
        # no validation needed here. State machine has done that
        first_char, second_char = byte_str[0], byte_str[1]
        if (first_char >= 0x81) and (first_char <= 0x9F):
            order = 188 * (first_char - 0x81)
        elif (first_char >= 0xE0) and (first_char <= 0xEF):
            order = 188 * (first_char - 0xE0 + 31)
        else:
            return -1
        order = order + second_char - 0x40
        if second_char > 0x7F:
            order = -1
        return order


class EUCJPDistributionAnalysis(CharDistributionAnalysis):
    def __init__(self):
        super(EUCJPDistributionAnalysis, self).__init__()
        self._char_to_freq_order = JIS_CHAR_TO_FREQ_ORDER
        self._table_size = JIS_TABLE_SIZE
        self.typical_distribution_ratio = JIS_TYPICAL_DISTRIBUTION_RATIO

    def get_order(self, byte_str):
        # for euc-JP encoding, we are interested
        #   first  byte range: 0xa0 -- 0xfe
        #   second byte range: 0xa1 -- 0xfe
        # no validation needed here. State machine has done that
        char = byte_str[0]
        if char >= 0xA0:
            return 94 * (char - 0xA1) + byte_str[1] - 0xa1
        else:
            return -1

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
cli Folder 0755
.__init__.pyo.40009 File 1020 B 0644
.big5freq.pyo.40009 File 53.43 KB 0644
.big5prober.pyo.40009 File 1.39 KB 0644
.chardistribution.pyo.40009 File 8 KB 0644
.charsetgroupprober.pyo.40009 File 2.91 KB 0644
.charsetprober.pyo.40009 File 4.19 KB 0644
.codingstatemachine.pyo.40009 File 3.38 KB 0644
.compat.pyo.40009 File 417 B 0644
.cp949prober.pyo.40009 File 1.4 KB 0644
.enums.pyo.40009 File 3.16 KB 0644
.escprober.pyo.40009 File 3.26 KB 0644
.escsm.pyo.40009 File 7.84 KB 0644
.eucjpprober.pyo.40009 File 3.08 KB 0644
.euckrfreq.pyo.40009 File 23.54 KB 0644
.euckrprober.pyo.40009 File 1.4 KB 0644
.euctwfreq.pyo.40009 File 53.44 KB 0644
.euctwprober.pyo.40009 File 1.4 KB 0644
.gb2312freq.pyo.40009 File 37.47 KB 0644
.gb2312prober.pyo.40009 File 1.41 KB 0644
.hebrewprober.pyo.40009 File 3.86 KB 0644
.jisfreq.pyo.40009 File 43.47 KB 0644
.jpcntx.pyo.40009 File 24.91 KB 0644
.langbulgarianmodel.pyo.40009 File 24.39 KB 0644
.langcyrillicmodel.pyo.40009 File 29.98 KB 0644
.langgreekmodel.pyo.40009 File 24.07 KB 0644
.langhebrewmodel.pyo.40009 File 22.91 KB 0644
.langhungarianmodel.pyo.40009 File 24.36 KB 0644
.langthaimodel.pyo.40009 File 22.89 KB 0644
.langturkishmodel.pyo.40009 File 22.91 KB 0644
.latin1prober.pyo.40009 File 3.75 KB 0644
.mbcharsetprober.pyo.40009 File 2.83 KB 0644
.mbcsgroupprober.pyo.40009 File 1.34 KB 0644
.mbcssm.pyo.40009 File 18.69 KB 0644
.sbcharsetprober.pyo.40009 File 3.69 KB 0644
.sbcsgroupprober.pyo.40009 File 1.92 KB 0644
.sjisprober.pyo.40009 File 3.1 KB 0644
.universaldetector.pyo.40009 File 7.03 KB 0644
.utf8prober.pyo.40009 File 2.56 KB 0644
.version.pyo.40009 File 444 B 0644
__init__.py File 1.52 KB 0644
__init__.pyc File 1020 B 0644
__init__.pyo File 1020 B 0644
big5freq.py File 30.52 KB 0644
big5freq.pyc File 53.43 KB 0644
big5freq.pyo File 53.43 KB 0644
big5prober.py File 1.72 KB 0644
big5prober.pyc File 1.39 KB 0644
big5prober.pyo File 1.39 KB 0644
chardistribution.py File 9.19 KB 0644
chardistribution.pyc File 8 KB 0644
chardistribution.pyo File 8 KB 0644
charsetgroupprober.py File 3.7 KB 0644
charsetgroupprober.pyc File 2.91 KB 0644
charsetgroupprober.pyo File 2.91 KB 0644
charsetprober.py File 4.99 KB 0644
charsetprober.pyc File 4.19 KB 0644
charsetprober.pyo File 4.19 KB 0644
codingstatemachine.py File 3.51 KB 0644
codingstatemachine.pyc File 3.38 KB 0644
codingstatemachine.pyo File 3.38 KB 0644
compat.py File 1.11 KB 0644
compat.pyc File 417 B 0644
compat.pyo File 417 B 0644
cp949prober.py File 1.81 KB 0644
cp949prober.pyc File 1.4 KB 0644
cp949prober.pyo File 1.4 KB 0644
enums.py File 1.62 KB 0644
enums.pyc File 3.16 KB 0644
enums.pyo File 3.16 KB 0644
escprober.py File 3.86 KB 0644
escprober.pyc File 3.26 KB 0644
escprober.pyo File 3.26 KB 0644
escsm.py File 10.26 KB 0644
escsm.pyc File 7.84 KB 0644
escsm.pyo File 7.84 KB 0644
eucjpprober.py File 3.66 KB 0644
eucjpprober.pyc File 3.08 KB 0644
eucjpprober.pyo File 3.08 KB 0644
euckrfreq.py File 13.23 KB 0644
euckrfreq.pyc File 23.54 KB 0644
euckrfreq.pyo File 23.54 KB 0644
euckrprober.py File 1.71 KB 0644
euckrprober.pyc File 1.4 KB 0644
euckrprober.pyo File 1.4 KB 0644
euctwfreq.py File 30.88 KB 0644
euctwfreq.pyc File 53.44 KB 0644
euctwfreq.pyo File 53.44 KB 0644
euctwprober.py File 1.71 KB 0644
euctwprober.pyc File 1.4 KB 0644
euctwprober.pyo File 1.4 KB 0644
gb2312freq.py File 20.23 KB 0644
gb2312freq.pyc File 37.47 KB 0644
gb2312freq.pyo File 37.47 KB 0644
gb2312prober.py File 1.71 KB 0644
gb2312prober.pyc File 1.41 KB 0644
gb2312prober.pyo File 1.41 KB 0644
hebrewprober.py File 13.51 KB 0644
hebrewprober.pyc File 3.86 KB 0644
hebrewprober.pyo File 3.86 KB 0644
jisfreq.py File 25.17 KB 0644
jisfreq.pyc File 43.47 KB 0644
jisfreq.pyo File 43.47 KB 0644
jpcntx.py File 19.18 KB 0644
jpcntx.pyc File 24.91 KB 0644
jpcntx.pyo File 24.91 KB 0644
langbulgarianmodel.py File 12.54 KB 0644
langbulgarianmodel.pyc File 24.39 KB 0644
langbulgarianmodel.pyo File 24.39 KB 0644
langcyrillicmodel.py File 17.53 KB 0644
langcyrillicmodel.pyc File 29.98 KB 0644
langcyrillicmodel.pyo File 29.98 KB 0644
langgreekmodel.py File 12.39 KB 0644
langgreekmodel.pyc File 24.07 KB 0644
langgreekmodel.pyo File 24.07 KB 0644
langhebrewmodel.py File 11.08 KB 0644
langhebrewmodel.pyc File 22.91 KB 0644
langhebrewmodel.pyo File 22.91 KB 0644
langhungarianmodel.py File 12.3 KB 0644
langhungarianmodel.pyc File 24.36 KB 0644
langhungarianmodel.pyo File 24.36 KB 0644
langthaimodel.py File 11.03 KB 0644
langthaimodel.pyc File 22.89 KB 0644
langthaimodel.pyo File 22.89 KB 0644
langturkishmodel.py File 10.84 KB 0644
langturkishmodel.pyc File 22.91 KB 0644
langturkishmodel.pyo File 22.91 KB 0644
latin1prober.py File 5.24 KB 0644
latin1prober.pyc File 3.75 KB 0644
latin1prober.pyo File 3.75 KB 0644
mbcharsetprober.py File 3.33 KB 0644
mbcharsetprober.pyc File 2.83 KB 0644
mbcharsetprober.pyo File 2.83 KB 0644
mbcsgroupprober.py File 1.96 KB 0644
mbcsgroupprober.pyc File 1.34 KB 0644
mbcsgroupprober.pyo File 1.34 KB 0644
mbcssm.py File 24.88 KB 0644
mbcssm.pyc File 18.69 KB 0644
mbcssm.pyo File 18.69 KB 0644
sbcharsetprober.py File 5.52 KB 0644
sbcharsetprober.pyc File 3.69 KB 0644
sbcharsetprober.pyo File 3.69 KB 0644
sbcsgroupprober.py File 3.46 KB 0644
sbcsgroupprober.pyc File 1.92 KB 0644
sbcsgroupprober.pyo File 1.92 KB 0644
sjisprober.py File 3.69 KB 0644
sjisprober.pyc File 3.1 KB 0644
sjisprober.pyo File 3.1 KB 0644
universaldetector.py File 12.19 KB 0644
universaldetector.pyc File 7.03 KB 0644
universaldetector.pyo File 7.03 KB 0644
utf8prober.py File 2.7 KB 0644
utf8prober.pyc File 2.56 KB 0644
utf8prober.pyo File 2.56 KB 0644
version.py File 242 B 0644
version.pyc File 444 B 0644
version.pyo File 444 B 0644