23 # License along with this library; if not, write to the Free Software |
23 # License along with this library; if not, write to the Free Software |
24 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
24 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
25 # 02110-1301 USA |
25 # 02110-1301 USA |
26 ######################### END LICENSE BLOCK ######################### |
26 ######################### END LICENSE BLOCK ######################### |
27 |
27 |
28 import constants, sys |
28 from . import constants |
29 from charsetprober import CharSetProber |
29 import sys |
|
30 from .charsetprober import CharSetProber |
30 |
31 |
31 class CharSetGroupProber(CharSetProber): |
32 class CharSetGroupProber(CharSetProber): |
32 def __init__(self): |
33 def __init__(self): |
33 CharSetProber.__init__(self) |
34 CharSetProber.__init__(self) |
34 self._mActiveNum = 0 |
35 self._mActiveNum = 0 |
39 CharSetProber.reset(self) |
40 CharSetProber.reset(self) |
40 self._mActiveNum = 0 |
41 self._mActiveNum = 0 |
41 for prober in self._mProbers: |
42 for prober in self._mProbers: |
42 if prober: |
43 if prober: |
43 prober.reset() |
44 prober.reset() |
44 prober.active = constants.True |
45 prober.active = True |
45 self._mActiveNum += 1 |
46 self._mActiveNum += 1 |
46 self._mBestGuessProber = None |
47 self._mBestGuessProber = None |
47 |
48 |
48 def get_charset_name(self): |
49 def get_charset_name(self): |
49 if not self._mBestGuessProber: |
50 if not self._mBestGuessProber: |
60 if not st: continue |
61 if not st: continue |
61 if st == constants.eFoundIt: |
62 if st == constants.eFoundIt: |
62 self._mBestGuessProber = prober |
63 self._mBestGuessProber = prober |
63 return self.get_state() |
64 return self.get_state() |
64 elif st == constants.eNotMe: |
65 elif st == constants.eNotMe: |
65 prober.active = constants.False |
66 prober.active = False |
66 self._mActiveNum -= 1 |
67 self._mActiveNum -= 1 |
67 if self._mActiveNum <= 0: |
68 if self._mActiveNum <= 0: |
68 self._mState = constants.eNotMe |
69 self._mState = constants.eNotMe |
69 return self.get_state() |
70 return self.get_state() |
70 return self.get_state() |
71 return self.get_state() |