device_detector 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +11 -0
- data/README.md +39 -20
- data/Rakefile +30 -0
- data/device_detector.gemspec +2 -2
- data/lib/device_detector/device.rb +27 -13
- data/lib/device_detector/parser.rb +26 -15
- data/lib/device_detector/version.rb +1 -1
- data/regexes/bots.yml +4 -7
- data/regexes/browsers.yml +32 -0
- data/regexes/devices/cameras.yml +26 -0
- data/regexes/devices/car_browsers.yml +13 -0
- data/regexes/devices/consoles.yml +41 -0
- data/regexes/devices/mobiles.yml +479 -139
- data/regexes/devices/portable_media_players.yml +62 -0
- data/regexes/devices/televisions.yml +243 -0
- data/regexes/libraries.yml +4 -0
- data/regexes/mediaplayers.yml +13 -1
- data/regexes/mobile_apps.yml +21 -0
- data/regexes/oss.yml +89 -46
- data/regexes/pim.yml +1 -1
- data/spec/device_detector/device_spec.rb +79 -0
- metadata +11 -5
data/regexes/devices/mobiles.yml
CHANGED
@@ -71,14 +71,14 @@ HTC:
|
|
71
71
|
|
72
72
|
- regex: 'NexusHD2' # custom rom for hd2
|
73
73
|
model: 'HD2'
|
74
|
-
- regex: 'HTC[ _
|
74
|
+
- regex: 'HTC[ _\-]((?:Flyer|P715a).*) Build'
|
75
75
|
device: 'tablet'
|
76
76
|
model: '$1'
|
77
77
|
- regex: 'HTC[ _]([^/;]+) [0-9]+(?:\.[0-9]+)+ Build'
|
78
78
|
model: '$1'
|
79
79
|
- regex: 'HTC[ _]([^/;]+) Build'
|
80
80
|
model: '$1'
|
81
|
-
- regex: 'HTC[ _]([a-z0-9]+[ _
|
81
|
+
- regex: 'HTC[ _]([a-z0-9]+[ _\-]?(?:[a-z0-9_+\-])*)'
|
82
82
|
model: '$1'
|
83
83
|
- regex: 'USCCHTC(\d+)'
|
84
84
|
model: '$1'
|
@@ -163,7 +163,7 @@ Palm:
|
|
163
163
|
models:
|
164
164
|
- regex: '((?:Pre|Pixi))/(\d+\.\d+)'
|
165
165
|
model: '$1 $2'
|
166
|
-
- regex: 'Palm(?:[
|
166
|
+
- regex: 'Palm(?:[ \-])?((?!OS|Source)[a-z0-9]+)'
|
167
167
|
model: '$1'
|
168
168
|
- regex: 'Treo([a-z0-9]+)'
|
169
169
|
model: 'Treo $1'
|
@@ -321,7 +321,7 @@ Acer:
|
|
321
321
|
|
322
322
|
- regex: 'Acer; ?([^;\)]+)'
|
323
323
|
model: '$1'
|
324
|
-
- regex: 'Acer[ _
|
324
|
+
- regex: 'Acer[ _\-]?([^;\)]+) Build'
|
325
325
|
model: '$1'
|
326
326
|
- regex: 'acer[\-_]([a-z0-9]+)'
|
327
327
|
model: '$1'
|
@@ -655,9 +655,9 @@ Coolpad:
|
|
655
655
|
regex: '(?:YL-)?Coolpad'
|
656
656
|
device: 'smartphone'
|
657
657
|
models:
|
658
|
-
- regex: '(?:YL-)?Coolpad[ _
|
658
|
+
- regex: '(?:YL-)?Coolpad[ _\-]?([^/;]+) Build'
|
659
659
|
model: '$1'
|
660
|
-
- regex: '(?:YL-)?Coolpad[ _
|
660
|
+
- regex: '(?:YL-)?Coolpad[ _\-]?([a-z0-9\-]+)'
|
661
661
|
model: '$1'
|
662
662
|
|
663
663
|
# Cricket
|
@@ -707,7 +707,7 @@ Dell:
|
|
707
707
|
device: 'tablet'
|
708
708
|
- regex: 'Dell; ([^;/\)]+)'
|
709
709
|
model: '$1'
|
710
|
-
- regex: 'Dell[ _
|
710
|
+
- regex: 'Dell[ _\-]([^/;]+) Build'
|
711
711
|
model: '$1'
|
712
712
|
|
713
713
|
# Dbtel
|
@@ -774,37 +774,282 @@ Ericy:
|
|
774
774
|
device: 'feature phone'
|
775
775
|
model: '$1'
|
776
776
|
|
777
|
-
#
|
778
|
-
|
779
|
-
regex: '
|
777
|
+
# Rikomagic
|
778
|
+
Rikomagic:
|
779
|
+
regex: 'MK(80[28][^/;]*) Build'
|
780
|
+
device: 'tv'
|
781
|
+
model: 'MK$1'
|
782
|
+
|
783
|
+
# Sony & Sony Ericsson (combined as they are mixed up)
|
784
|
+
Sony:
|
785
|
+
regex: 'Sony(?: ?Ericsson)?|SGP|Xperia|C1[569]0[45]|C2[01]0[45]|C2305|C530[236]|C5502|C6[56]0[236]|C6616|C68(?:0[26]|[34]3)|C69(?:0[236]|16|43)|D200[45]|D21(?:0[45]|14)|D22(?:0[236]|12|43)|D230[2356]|D240[36]|D25(?:02|33)|D510[236]|D530[36]|D5322|D5503|D58[03]3|D65(?:0[23]|43)|D66[05]3|(?:WT|LT|SO|ST|SK|MK)[0-9]+[a-z]*[0-9]*(?: Build|\))|X?L39H|portalmmm/2\.0 K|X10[ia]v?|E1[05][ai]v?|MT[0-9]{2}[a-z]? Build|SO-0(?:[35]D|4E|[12]C)|R800[aix]'
|
780
786
|
device: 'smartphone'
|
781
787
|
models:
|
782
|
-
# explicit smartphone models
|
783
|
-
- regex: '(?:
|
784
|
-
model: 'txt'
|
785
|
-
- regex: '(?:SonyEricsson)?CK15[ai]'
|
786
|
-
model: 'txt pro'
|
787
|
-
- regex: '(?:SonyEricsson)?E10[ai]v?'
|
788
|
+
# SONY ERICSSON: explicit smartphone models
|
789
|
+
- regex: '(?:Sony(?:Ericsson)?)?E10[ai]v?'
|
788
790
|
model: 'Xperia X10 mini'
|
789
|
-
|
791
|
+
brand: 'Sony Ericsson'
|
792
|
+
- regex: '(?:Sony(?:Ericsson)?)?U20'
|
793
|
+
model: 'Xperia X10 mini pro'
|
794
|
+
brand: 'Sony Ericsson'
|
795
|
+
- regex: '(?:Sony(?:Ericsson)?)?E15[ai]v?'
|
790
796
|
model: 'Xperia X8'
|
791
|
-
|
797
|
+
brand: 'Sony Ericsson'
|
798
|
+
- regex: '(?:Sony(?:Ericsson)?)?(LT15[ai]?v?|SO-01C)'
|
792
799
|
model: 'Xperia arc'
|
793
|
-
|
800
|
+
brand: 'Sony Ericsson'
|
801
|
+
- regex: '(?:Sony(?:Ericsson)?)?LT18[ai]v?'
|
794
802
|
model: 'Xperia arc S'
|
795
|
-
|
803
|
+
brand: 'Sony Ericsson'
|
804
|
+
- regex: '(?:Sony(?:Ericsson)?)?MT11'
|
805
|
+
model: 'Xperia neo V'
|
806
|
+
brand: 'Sony Ericsson'
|
807
|
+
- regex: '(?:Sony(?:Ericsson)?)?MT15'
|
808
|
+
model: 'Xperia neo'
|
809
|
+
brand: 'Sony Ericsson'
|
810
|
+
- regex: '(?:Sony(?:Ericsson)?)?MT27'
|
811
|
+
model: 'Xperia Sola'
|
812
|
+
brand: 'Sony Ericsson'
|
813
|
+
- regex: '(?:Sony(?:Ericsson)?)?MK16[ai]'
|
814
|
+
model: 'Xperia pro'
|
815
|
+
brand: 'Sony Ericsson'
|
816
|
+
- regex: '(?:Sony(?:Ericsson)?)?ST15[ai]'
|
817
|
+
model: 'Xperia mini'
|
818
|
+
brand: 'Sony Ericsson'
|
819
|
+
- regex: '(?:Sony(?:Ericsson)?)?ST17[ai]'
|
820
|
+
model: 'Xperia active'
|
821
|
+
brand: 'Sony Ericsson'
|
822
|
+
- regex: '(?:Sony(?:Ericsson)?)?ST18[ai]'
|
823
|
+
model: 'Xperia ray'
|
824
|
+
brand: 'Sony Ericsson'
|
825
|
+
- regex: '(?:Sony(?:Ericsson)?)?SK17[ai]?'
|
826
|
+
model: 'Xperia mini pro'
|
827
|
+
brand: 'Sony Ericsson'
|
828
|
+
- regex: '(?:Sony(?:Ericsson)?)?X10[ai]v?'
|
796
829
|
model: 'Xperia X10'
|
830
|
+
brand: 'Sony Ericsson'
|
831
|
+
- regex: '(?:Sony(?:Ericsson)?)?M1'
|
832
|
+
model: 'Aspen'
|
833
|
+
brand: 'Sony Ericsson'
|
834
|
+
- regex: '(?:Sony(?:Ericsson)?)?R800'
|
835
|
+
model: 'Xperia PLAY'
|
836
|
+
brand: 'Sony Ericsson'
|
837
|
+
- regex: '(?:Sony(?:Ericsson)?)?WT19'
|
838
|
+
model: 'Live with Walkman'
|
839
|
+
brand: 'Sony Ericsson'
|
840
|
+
|
841
|
+
# SONY ERICSSON: explicit feature phone models
|
842
|
+
- regex: '(?:Sony(?:Ericsson)?)?CK13i'
|
843
|
+
model: 'txt'
|
844
|
+
brand: 'Sony Ericsson'
|
845
|
+
device: 'feature phone'
|
846
|
+
- regex: '(?:Sony(?:Ericsson)?)?CK15[ai]'
|
847
|
+
model: 'txt pro'
|
848
|
+
brand: 'Sony Ericsson'
|
849
|
+
device: 'feature phone'
|
850
|
+
- regex: '(?:Sony(?:Ericsson)?)?F100i'
|
851
|
+
model: 'Jalou'
|
852
|
+
brand: 'Sony Ericsson'
|
853
|
+
device: 'feature phone'
|
854
|
+
- regex: '(?:Sony(?:Ericsson)?)?J105'
|
855
|
+
model: 'Naite'
|
856
|
+
brand: 'Sony Ericsson'
|
857
|
+
device: 'feature phone'
|
858
|
+
- regex: '(?:Sony(?:Ericsson)?)?J108'
|
859
|
+
model: 'Cedar'
|
860
|
+
brand: 'Sony Ericsson'
|
861
|
+
device: 'feature phone'
|
862
|
+
- regex: '(?:Sony(?:Ericsson)?)?J10'
|
863
|
+
model: 'Elm'
|
864
|
+
brand: 'Sony Ericsson'
|
865
|
+
device: 'feature phone'
|
866
|
+
- regex: '(?:Sony(?:Ericsson)?)?J20'
|
867
|
+
model: 'Hazel'
|
868
|
+
brand: 'Sony Ericsson'
|
869
|
+
device: 'feature phone'
|
870
|
+
- regex: '(?:Sony(?:Ericsson)?)?U10'
|
871
|
+
model: 'Aino'
|
872
|
+
brand: 'Sony Ericsson'
|
873
|
+
device: 'feature phone'
|
874
|
+
- regex: '(?:Sony(?:Ericsson)?)?U100'
|
875
|
+
model: 'Yari'
|
876
|
+
brand: 'Sony Ericsson'
|
877
|
+
device: 'feature phone'
|
878
|
+
- regex: '(?:Sony(?:Ericsson)?)?U1'
|
879
|
+
model: 'Satio'
|
880
|
+
brand: 'Sony Ericsson'
|
881
|
+
device: 'feature phone'
|
882
|
+
- regex: '(?:Sony(?:Ericsson)?)?U5'
|
883
|
+
model: 'Vivaz'
|
884
|
+
brand: 'Sony Ericsson'
|
885
|
+
device: 'feature phone'
|
886
|
+
- regex: '(?:Sony(?:Ericsson)?)?U8'
|
887
|
+
model: 'Vivaz pro'
|
888
|
+
brand: 'Sony Ericsson'
|
889
|
+
device: 'feature phone'
|
890
|
+
- regex: '(?:Sony(?:Ericsson)?)?W20'
|
891
|
+
model: 'Zylo'
|
892
|
+
brand: 'Sony Ericsson'
|
893
|
+
device: 'feature phone'
|
894
|
+
- regex: '(?:Sony(?:Ericsson)?)?W100'
|
895
|
+
model: 'Spiro'
|
896
|
+
brand: 'Sony Ericsson'
|
897
|
+
device: 'feature phone'
|
898
|
+
- regex: '(?:Sony(?:Ericsson)?)?W150'
|
899
|
+
model: 'Yendo'
|
900
|
+
brand: 'Sony Ericsson'
|
901
|
+
device: 'feature phone'
|
902
|
+
- regex: '(?:Sony(?:Ericsson)?)?WT13'
|
903
|
+
model: 'Mix Walkman'
|
904
|
+
brand: 'Sony Ericsson'
|
905
|
+
device: 'feature phone'
|
797
906
|
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
907
|
+
# SONY: explicit smartphone models
|
908
|
+
- regex: '(?:Sony(?:Ericsson)?)?LT22i'
|
909
|
+
model: 'Xperia P'
|
910
|
+
- regex: '(?:Sony(?:Ericsson)?)?LT25i'
|
911
|
+
model: 'Xperia V'
|
912
|
+
- regex: '(?:Sony(?:Ericsson)?)?LT26ii'
|
913
|
+
model: 'Xperia SL'
|
914
|
+
- regex: '(?:Sony(?:Ericsson)?)?LT26i'
|
915
|
+
model: 'Xperia S'
|
916
|
+
- regex: '(?:Sony(?:Ericsson)?)?SO-02C'
|
917
|
+
model: 'Xperia arco'
|
918
|
+
- regex: '(?:Sony(?:Ericsson)?)?SO-03D'
|
919
|
+
model: 'Xperia arco HD'
|
920
|
+
- regex: '(?:Sony(?:Ericsson)?)?LT26w'
|
921
|
+
model: 'Xperia arco S'
|
922
|
+
- regex: '(?:Sony(?:Ericsson)?)?LT28[aih]'
|
923
|
+
model: 'Xperia ion'
|
924
|
+
- regex: '(?:Sony(?:Ericsson)?)?LT29i'
|
925
|
+
model: 'Xperia TX'
|
926
|
+
- regex: '(?:Sony(?:Ericsson)?)?LT30a'
|
927
|
+
model: 'Xperia T LTE'
|
928
|
+
- regex: '(?:Sony(?:Ericsson)?)?LT30p'
|
929
|
+
model: 'Xperia T'
|
930
|
+
- regex: '(?:Sony(?:Ericsson)?)?ST21[ia]2'
|
931
|
+
model: 'Xperia tipo dual'
|
932
|
+
- regex: '(?:Sony(?:Ericsson)?)?ST21[ia]'
|
933
|
+
model: 'Xperia tipo'
|
934
|
+
- regex: '(?:Sony(?:Ericsson)?)?ST23[ia]'
|
935
|
+
model: 'Xperia miro'
|
936
|
+
- regex: '(?:Sony(?:Ericsson)?)?ST25[ia]'
|
937
|
+
model: 'Xperia U'
|
938
|
+
- regex: '(?:Sony(?:Ericsson)?)?ST26[ia]'
|
939
|
+
model: 'Xperia J'
|
940
|
+
- regex: '(?:Sony(?:Ericsson)?)?ST27[ia]'
|
941
|
+
model: 'Xperia go'
|
942
|
+
- regex: '(?:Sony(?:Ericsson)?)?C150[45]'
|
943
|
+
model: 'Xperia E'
|
944
|
+
- regex: '(?:Sony(?:Ericsson)?)?C160[45]'
|
945
|
+
model: 'Xperia E Dual'
|
946
|
+
- regex: '(?:Sony(?:Ericsson)?)?C190[45]'
|
947
|
+
model: 'Xperia M'
|
948
|
+
- regex: '(?:Sony(?:Ericsson)?)?C200[45]'
|
949
|
+
model: 'Xperia M Dual'
|
950
|
+
- regex: '(?:Sony(?:Ericsson)?)?C210[45]'
|
951
|
+
model: 'Xperia L'
|
952
|
+
- regex: '(?:Sony(?:Ericsson)?)?C2305'
|
953
|
+
model: 'Xperia C'
|
954
|
+
- regex: '(?:Sony(?:Ericsson)?)?C530[236]'
|
955
|
+
model: 'Xperia SP'
|
956
|
+
- regex: '(?:Sony(?:Ericsson)?)?C5502'
|
957
|
+
model: 'Xperia ZR'
|
958
|
+
- regex: '(?:Sony(?:Ericsson)?)?C650[236]'
|
959
|
+
model: 'Xperia ZL'
|
960
|
+
- regex: '(?:Sony(?:Ericsson)?)?C66(?:0[236]|16)'
|
961
|
+
model: 'Xperia Z'
|
962
|
+
- regex: '(?:Sony(?:Ericsson)?)?(?:C68(?:0[26]|[34]3)|XL39H)'
|
963
|
+
model: 'Xperia Z Ultra'
|
964
|
+
- regex: '(?:Sony(?:Ericsson)?)?C69(?:0[236]|16|43)|L39H'
|
965
|
+
model: 'Xperia Z1'
|
966
|
+
- regex: '(?:Sony(?:Ericsson)?)?D200[45]'
|
967
|
+
model: 'Xperia E1'
|
968
|
+
- regex: '(?:Sony(?:Ericsson)?)?D21(?:0[45]|14)'
|
969
|
+
model: 'Xperia E1 Dual'
|
970
|
+
- regex: '(?:Sony(?:Ericsson)?)?D22(?:0[236]|43)'
|
971
|
+
model: 'Xperia E3'
|
972
|
+
- regex: '(?:Sony(?:Ericsson)?)?D2212'
|
973
|
+
model: 'Xperia E3 Dual'
|
974
|
+
- regex: '(?:Sony(?:Ericsson)?)?D2302'
|
975
|
+
model: 'Xperia M2 Dual'
|
976
|
+
- regex: '(?:Sony(?:Ericsson)?)?D230[356]'
|
977
|
+
model: 'Xperia M2'
|
978
|
+
- regex: '(?:Sony(?:Ericsson)?)?D240[36]'
|
979
|
+
model: 'Xperia M2 Aqua'
|
980
|
+
- regex: '(?:Sony(?:Ericsson)?)?D2502'
|
981
|
+
model: 'Xperia C3 Dual'
|
982
|
+
- regex: '(?:Sony(?:Ericsson)?)?D2533'
|
983
|
+
model: 'Xperia C3'
|
984
|
+
- regex: '(?:Sony(?:Ericsson)?)?D510[236]'
|
985
|
+
model: 'Xperia T3'
|
986
|
+
- regex: '(?:Sony(?:Ericsson)?)?D530[36]'
|
987
|
+
model: 'Xperia T2 Ultra'
|
988
|
+
- regex: '(?:Sony(?:Ericsson)?)?D5322'
|
989
|
+
model: 'Xperia T2 Ultra Dual'
|
990
|
+
- regex: '(?:Sony(?:Ericsson)?)?D5503'
|
991
|
+
model: 'Xperia Z1 Compact'
|
992
|
+
- regex: '(?:Sony(?:Ericsson)?)?D58[03]3'
|
993
|
+
model: 'Xperia Z3 Compact'
|
994
|
+
- regex: '(?:Sony(?:Ericsson)?)?D65(?:0[23]|43)'
|
995
|
+
model: 'Xperia Z2'
|
996
|
+
- regex: '(?:Sony(?:Ericsson)?)?D66[05]3'
|
997
|
+
model: 'Xperia Z3'
|
998
|
+
- regex: '(?:Sony(?:Ericsson)?)?SO-04E'
|
999
|
+
model: 'Xperia A'
|
1000
|
+
- regex: '(?:Sony(?:Ericsson)?)?SO-05D'
|
1001
|
+
model: 'Xperia SX'
|
1002
|
+
|
1003
|
+
# SONY: explicit tablet models
|
1004
|
+
- regex: 'SGP(?:311|312|321) Build'
|
1005
|
+
model: 'Xperia Tablet Z'
|
1006
|
+
device: 'tablet'
|
1007
|
+
- regex: 'SGP(?:511|512|521) Build'
|
1008
|
+
model: 'Xperia Tablet Z2'
|
1009
|
+
device: 'tablet'
|
1010
|
+
- regex: 'SGP(?:6[24]1) Build'
|
1011
|
+
model: 'Xperia Tablet Z3 Compact'
|
1012
|
+
device: 'tablet'
|
1013
|
+
- regex: 'SGPT(?:12|121|122|123|13|131|132|133) Build'
|
1014
|
+
model: 'Xperia Tablet S'
|
1015
|
+
device: 'tablet'
|
1016
|
+
|
1017
|
+
# general detections
|
1018
|
+
- regex: '((?:WT|SO|ST|SK|MK)[0-9]+[a-z]*[0-9]*)(?: Build|\))'
|
803
1019
|
model: '$1'
|
1020
|
+
brand: 'Sony Ericsson'
|
804
1021
|
- regex: '(MT[0-9]{2}[a-z]?) Build'
|
805
1022
|
model: '$1'
|
1023
|
+
brand: 'Sony Ericsson'
|
806
1024
|
- regex: 'portalmmm/2.0 K([a-z0-9]+)'
|
807
1025
|
model: 'K$1'
|
1026
|
+
brand: 'Sony Ericsson'
|
1027
|
+
- regex: 'Sony ?Ericsson?([^/;]*) Build'
|
1028
|
+
model: '$1'
|
1029
|
+
brand: 'Sony Ericsson'
|
1030
|
+
- regex: 'SonyEricsson([CGJKPTWZ][0-9]+[a-z]+)/'
|
1031
|
+
model: '$1'
|
1032
|
+
brand: 'Sony Ericsson'
|
1033
|
+
device: 'feature phone'
|
1034
|
+
- regex: 'Sony ?Ericsson ?([a-z0-9\-]+)'
|
1035
|
+
model: '$1'
|
1036
|
+
brand: 'Sony Ericsson'
|
1037
|
+
|
1038
|
+
- regex: 'Sony (Tablet[^/;]*) Build'
|
1039
|
+
model: '$1'
|
1040
|
+
device: 'tablet'
|
1041
|
+
- regex: '(SGP[^/;]*) Build'
|
1042
|
+
model: '$1'
|
1043
|
+
device: 'tablet'
|
1044
|
+
- regex: 'Xperia ([^/;]*Tablet[^/;]*) Build'
|
1045
|
+
model: 'Xperia $1'
|
1046
|
+
device: 'tablet'
|
1047
|
+
- regex: 'Xperia ([^;/]+) Build'
|
1048
|
+
model: 'Xperia $1'
|
1049
|
+
- regex: 'Sony[ ]?([^/;]*) Build'
|
1050
|
+
model: '$1'
|
1051
|
+
- regex: 'Sony[ ]?([a-z0-9\-]+)'
|
1052
|
+
model: '$1'
|
808
1053
|
|
809
1054
|
# Ericsson
|
810
1055
|
Ericsson:
|
@@ -931,16 +1176,35 @@ Haier:
|
|
931
1176
|
regex: 'Haier'
|
932
1177
|
device: 'smartphone'
|
933
1178
|
models:
|
934
|
-
- regex: 'Haier[ _
|
1179
|
+
- regex: 'Haier[ _\-](H[WT]-[^/;]+) Build'
|
935
1180
|
model: '$1'
|
936
|
-
- regex: 'Haier[ _
|
1181
|
+
- regex: 'Haier[ _\-](H[WT]-[a-z0-9_\-]+)'
|
937
1182
|
model: '$1'
|
938
|
-
- regex: 'Haier[ _
|
1183
|
+
- regex: 'Haier[ _\-](sy[0-9]+)'
|
939
1184
|
model: '$1'
|
940
|
-
- regex: 'Haier[ _
|
1185
|
+
- regex: 'Haier[ _\-]([a-z0-9\-]+)'
|
941
1186
|
model: '$1'
|
942
1187
|
device: 'feature phone'
|
943
1188
|
|
1189
|
+
# Hisense
|
1190
|
+
Hisense:
|
1191
|
+
regex: 'HS-(?:U|EG?)[0-9]+[a-z0-9\-]*|E270BSA|M470BS[AE]|E2281'
|
1192
|
+
device: 'smartphone'
|
1193
|
+
models:
|
1194
|
+
# explicit tablet models
|
1195
|
+
- regex: 'E270BSA'
|
1196
|
+
device: 'tablet'
|
1197
|
+
model: 'Sero 7'
|
1198
|
+
- regex: 'M470BS[AE]'
|
1199
|
+
device: 'tablet'
|
1200
|
+
model: 'Sero 7 Pro'
|
1201
|
+
- regex: 'E2281'
|
1202
|
+
device: 'tablet'
|
1203
|
+
model: 'Sero 8'
|
1204
|
+
|
1205
|
+
- regex: '(HS-(?:U|EG?)[0-9]+[a-z0-9\-]*)'
|
1206
|
+
model: '$1'
|
1207
|
+
|
944
1208
|
# Huawei
|
945
1209
|
Huawei:
|
946
1210
|
regex: '(HW-)?Huawei|Ideos|vodafone[a-z0-9]+'
|
@@ -951,11 +1215,11 @@ Huawei:
|
|
951
1215
|
model: '$1'
|
952
1216
|
- regex: 'Ideos([^;/]*) Build'
|
953
1217
|
model: 'Ideos$1'
|
954
|
-
- regex: 'Huawei[ _
|
1218
|
+
- regex: 'Huawei[ _\-]?([^/;]*) Build'
|
955
1219
|
model: '$1'
|
956
1220
|
- regex: '(?:HW-)?Huawei(?:/1\.0/0?(?:Huawei))?[_\- /]?([a-z0-9\-_]+)'
|
957
1221
|
model: '$1'
|
958
|
-
- regex: 'Huawei; ([a-z0-9
|
1222
|
+
- regex: 'Huawei; ([a-z0-9 \-]+)'
|
959
1223
|
model: '$1'
|
960
1224
|
- regex: 'vodafone([a-z0-9]+)'
|
961
1225
|
model: 'Vodafone $1'
|
@@ -986,7 +1250,7 @@ Infinix:
|
|
986
1250
|
model: '$1'
|
987
1251
|
- regex: 'Infinix (X\d+)'
|
988
1252
|
model: '$1'
|
989
|
-
- regex: 'Infinix[ _]([a-z0-9_
|
1253
|
+
- regex: 'Infinix[ _]([a-z0-9_\-]+)'
|
990
1254
|
model: '$1'
|
991
1255
|
|
992
1256
|
# Inkti
|
@@ -1021,7 +1285,7 @@ Intex:
|
|
1021
1285
|
model: '$1'
|
1022
1286
|
- regex: '(Aqua|Cloud)[ _\.]([^/;\)]+)(?:[ _]Build|(?<!Build)/|\))'
|
1023
1287
|
model: '$1 $2'
|
1024
|
-
- regex: 'Intex[ _]([a-z0-9_
|
1288
|
+
- regex: 'Intex[ _]([a-z0-9_+\-]+)'
|
1025
1289
|
model: '$1'
|
1026
1290
|
|
1027
1291
|
# i-mate
|
@@ -1175,7 +1439,7 @@ Lenovo:
|
|
1175
1439
|
device: 'tablet'
|
1176
1440
|
- regex: 'Lenovo ([^/;]*) Build'
|
1177
1441
|
model: '$1'
|
1178
|
-
- regex: '(?:LNV-|Lenovo-)?Lenovo[ \-_]([a-z0-9_
|
1442
|
+
- regex: '(?:LNV-|Lenovo-)?Lenovo[ \-_]([a-z0-9_+\-]+)'
|
1179
1443
|
model: '$1'
|
1180
1444
|
- regex: 'IdeaTab[ \-_]?([a-z0-9]+)'
|
1181
1445
|
model: 'IdeaTab $1'
|
@@ -1240,14 +1504,11 @@ LG:
|
|
1240
1504
|
regex: 'LG|portalmmm/2\.0 (?:KE|KG|KP|L3)|VX[0-9]+'
|
1241
1505
|
device: 'smartphone'
|
1242
1506
|
models:
|
1243
|
-
- regex: 'LGE_DLNA_SDK|NetCast'
|
1244
|
-
device: 'tv'
|
1245
|
-
model: 'NetCast'
|
1246
1507
|
- regex: 'LGE(?: |-LG| LG-AX|-)([a-z0-9]+)'
|
1247
1508
|
model: '$1'
|
1248
1509
|
- regex: 'LGE;([a-z0-9\-]+)'
|
1249
1510
|
model: '$1'
|
1250
|
-
- regex: 'LG[ _
|
1511
|
+
- regex: 'LG[ _\-](V90.*|Optimus[ _\-]Pad.*) Build'
|
1251
1512
|
device: 'tablet'
|
1252
1513
|
model: '$1'
|
1253
1514
|
- regex: 'LG(?:/|-LG| |-)?([^/;]*) Build'
|
@@ -1315,7 +1576,7 @@ Sagem:
|
|
1315
1576
|
regex: 'SAGEM|portalmmm/2.0 (?:SG|my)'
|
1316
1577
|
device: 'smartphone'
|
1317
1578
|
models:
|
1318
|
-
- regex: 'SAGEM-(my[a-z0-9
|
1579
|
+
- regex: 'SAGEM-(my[a-z0-9\-]+)'
|
1319
1580
|
model: '$1'
|
1320
1581
|
device: 'feature phone'
|
1321
1582
|
- regex: 'SAGEM ([a-z0-9]+)'
|
@@ -1671,11 +1932,29 @@ Siemens:
|
|
1671
1932
|
|
1672
1933
|
# Samsung
|
1673
1934
|
Samsung:
|
1674
|
-
regex: 'SAMSUNG|SC-(?:02C|04E|01F)|S(?:CH|GH|PH|EC|AM|HV|HW|M)-|SMART-TV|GT-|Galaxy|(?:portalmmm|o2imode)/2\.0 [SZ]|sam[rua]'
|
1935
|
+
regex: 'SAMSUNG|SC-(?:02C|04E|01F)|N7100|S(?:CH|GH|PH|EC|AM|HV|HW|M)-|SMART-TV|GT-|Galaxy|(?:portalmmm|o2imode)/2\.0 [SZ]|sam[rua]'
|
1675
1936
|
device: 'smartphone'
|
1676
1937
|
models:
|
1677
1938
|
# explicit tablet models
|
1678
|
-
- regex: '(?:SAMSUNG-)?GT-
|
1939
|
+
- regex: '(?:SAMSUNG-)?GT-N5100'
|
1940
|
+
device: 'tablet'
|
1941
|
+
model: 'GALAXY Note 8.0"'
|
1942
|
+
- regex: '(?:SAMSUNG-)?GT-N5110'
|
1943
|
+
device: 'tablet'
|
1944
|
+
model: 'GALAXY Note 8.0" WiFi'
|
1945
|
+
- regex: '(?:SAMSUNG-)?GT-N5120'
|
1946
|
+
device: 'tablet'
|
1947
|
+
model: 'GALAXY Note 8.0" LTE'
|
1948
|
+
- regex: '(?:SAMSUNG-)?GT-N8000'
|
1949
|
+
device: 'tablet'
|
1950
|
+
model: 'GALAXY Note 10.1"'
|
1951
|
+
- regex: '(?:SAMSUNG-)?GT-N8010'
|
1952
|
+
device: 'tablet'
|
1953
|
+
model: 'GALAXY Note 10.1" WiFi'
|
1954
|
+
- regex: '(?:SAMSUNG-)?GT-N8020'
|
1955
|
+
device: 'tablet'
|
1956
|
+
model: 'GALAXY Note 10.1" LTE'
|
1957
|
+
- regex: '(?:SAMSUNG-)?GT-P1000M?|SCH-I800'
|
1679
1958
|
device: 'tablet'
|
1680
1959
|
model: 'GALAXY Tab'
|
1681
1960
|
- regex: '(?:SAMSUNG-)?GT-P3100B?'
|
@@ -1684,7 +1963,7 @@ Samsung:
|
|
1684
1963
|
- regex: '(?:SAMSUNG-)?GT-P311[03]'
|
1685
1964
|
device: 'tablet'
|
1686
1965
|
model: 'GALAXY Tab 2 7" WiFi'
|
1687
|
-
- regex: '(?:SAMSUNG-)?GT-P5100'
|
1966
|
+
- regex: '(?:SAMSUNG-)?GT-P5100|SCH-I915'
|
1688
1967
|
device: 'tablet'
|
1689
1968
|
model: 'GALAXY Tab 2 10.1"'
|
1690
1969
|
- regex: '(?:SAMSUNG-)?GT-P511[03]'
|
@@ -1759,9 +2038,15 @@ Samsung:
|
|
1759
2038
|
- regex: '(?:SAMSUNG-)?SM-T315'
|
1760
2039
|
device: 'tablet'
|
1761
2040
|
model: 'GALAXY Tab 3 8.0" LTE'
|
2041
|
+
- regex: '(?:SAMSUNG-)?SM-T335'
|
2042
|
+
device: 'tablet'
|
2043
|
+
model: 'GALAXY Tab 8.0" LTE'
|
1762
2044
|
- regex: '(?:SAMSUNG-)?SM-T520'
|
1763
2045
|
device: 'tablet'
|
1764
2046
|
model: 'GALAXY TabPRO 10.1" WiFi'
|
2047
|
+
- regex: '(?:SAMSUNG-)?SM-T535'
|
2048
|
+
device: 'tablet'
|
2049
|
+
model: 'GALAXY Tab 4 10.1" LTE'
|
1765
2050
|
- regex: '(?:SAMSUNG-)?SM-T320'
|
1766
2051
|
device: 'tablet'
|
1767
2052
|
model: 'GALAXY TabPRO 8.4" WiFi'
|
@@ -1774,11 +2059,77 @@ Samsung:
|
|
1774
2059
|
- regex: '(?:SAMSUNG-)?SM-T530(?:NU)?'
|
1775
2060
|
device: 'tablet'
|
1776
2061
|
model: 'GALAXY Tab 4 10.1" WiFi'
|
2062
|
+
- regex: '(?:SAMSUNG-)?SM-T700'
|
2063
|
+
device: 'tablet'
|
2064
|
+
model: 'GALAXY Tab S 8.4" WiFi'
|
2065
|
+
- regex: '(?:SAMSUNG-)?SM-T705'
|
2066
|
+
device: 'tablet'
|
2067
|
+
model: 'GALAXY Tab S 8.4" LTE'
|
2068
|
+
- regex: '(?:SAMSUNG-)?SM-T800'
|
2069
|
+
device: 'tablet'
|
2070
|
+
model: 'GALAXY Tab S 10.5" WiFi'
|
2071
|
+
- regex: '(?:SAMSUNG-)?SM-T805'
|
2072
|
+
device: 'tablet'
|
2073
|
+
model: 'GALAXY Tab S 10.5" LTE'
|
1777
2074
|
- regex: '(?:SAMSUNG-)?SM-T900'
|
1778
2075
|
device: 'tablet'
|
1779
2076
|
model: 'GALAXY TabPRO 12.2" WiFi'
|
1780
2077
|
|
1781
2078
|
# explicit smartphone models
|
2079
|
+
- regex: '(?:SAMSUNG-)?GT-I8190'
|
2080
|
+
model: 'GALAXY S III mini'
|
2081
|
+
- regex: '(?:SAMSUNG-)?GT-I9105'
|
2082
|
+
model: 'GALAXY S II Plus'
|
2083
|
+
- regex: '(?:SAMSUNG-)?(?:GT-I9195|SCH-I435)'
|
2084
|
+
model: 'GALAXY S4 mini'
|
2085
|
+
- regex: '(?:SAMSUNG-)?GT-I9205'
|
2086
|
+
model: 'GALAXY MEGA'
|
2087
|
+
- regex: '(?:SAMSUNG-)?GT-I9295'
|
2088
|
+
model: 'GALAXY S4 ACTIVE'
|
2089
|
+
- regex: '(?:SAMSUNG-)?(?:GT-I9300|SCH-I535|SCH-L710)'
|
2090
|
+
model: 'GALAXY S III'
|
2091
|
+
- regex: '(?:SAMSUNG-)?(?:GT-I9305|SCH-R530)'
|
2092
|
+
model: 'GALAXY S III LTE'
|
2093
|
+
- regex: '(?:SAMSUNG-)?(?:GT-I9505|SCH-I545|SCH-I959|SCH-R970)'
|
2094
|
+
model: 'GALAXY S4'
|
2095
|
+
- regex: '(?:SAMSUNG-)?GT-I9506'
|
2096
|
+
model: 'GALAXY S4 with LTE+'
|
2097
|
+
- regex: '(?:SAMSUNG-)?(?:(?:GT-)?N7100|SCH-I605|SCH-N719|SCH-R950|SPH-L900)'
|
2098
|
+
model: 'GALAXY Note II'
|
2099
|
+
- regex: '(?:SAMSUNG-)?GT-N7105'
|
2100
|
+
model: 'GALAXY Note II LTE'
|
2101
|
+
- regex: '(?:SAMSUNG-)?GT-S5280'
|
2102
|
+
model: 'GALAXY STAR'
|
2103
|
+
- regex: '(?:SAMSUNG-)?GT-S5301'
|
2104
|
+
model: 'GALAXY POCKET Plus'
|
2105
|
+
- regex: '(?:SAMSUNG-)?GT-S5310'
|
2106
|
+
model: 'GALAXY POCKET Neo'
|
2107
|
+
- regex: '(?:SAMSUNG-)?GT-S5360'
|
2108
|
+
model: 'GALAXY Y Hello Kitty'
|
2109
|
+
- regex: '(?:SAMSUNG-)?GT-S6310'
|
2110
|
+
model: 'GALAXY Young'
|
2111
|
+
- regex: '(?:SAMSUNG-)?GT-S6312'
|
2112
|
+
model: 'GALAXY Young DUOS'
|
2113
|
+
- regex: '(?:SAMSUNG-)?GT-S6790'
|
2114
|
+
model: 'GALAXY FAME Lite with NFC'
|
2115
|
+
- regex: '(?:SAMSUNG-)?GT-S6810'
|
2116
|
+
model: 'GALAXY FAME'
|
2117
|
+
- regex: '(?:SAMSUNG-)?GT-S7275'
|
2118
|
+
model: 'GALAXY ACE 3'
|
2119
|
+
- regex: '(?:SAMSUNG-)?GT-S7390'
|
2120
|
+
model: 'GALAXY Trend Lite'
|
2121
|
+
- regex: '(?:SAMSUNG-)?GT-S7500'
|
2122
|
+
model: 'GALAXY ACE Plus'
|
2123
|
+
- regex: '(?:SAMSUNG-)?(?:GT-S7560|SCH-I699)'
|
2124
|
+
model: 'GALAXY Trend'
|
2125
|
+
- regex: '(?:SAMSUNG-)?(?:GT-S7562|SCH-I919)'
|
2126
|
+
model: 'GALAXY S DUOS'
|
2127
|
+
- regex: '(?:SAMSUNG-)?GT-S7580'
|
2128
|
+
model: 'GALAXY Trend Plus'
|
2129
|
+
- regex: '(?:SAMSUNG-)?GT-S7582'
|
2130
|
+
model: 'GALAXY DUOS 2'
|
2131
|
+
- regex: '(?:SAMSUNG-)?GT-S7710'
|
2132
|
+
model: 'GALAXY Xcover 2'
|
1782
2133
|
- regex: '(?:SAMSUNG-)?SM-C101'
|
1783
2134
|
model: 'GALAXY S4 zoom'
|
1784
2135
|
- regex: '(?:SAMSUNG-)?SM-C115'
|
@@ -1789,22 +2140,38 @@ Samsung:
|
|
1789
2140
|
model: 'GALAXY CORE LTE'
|
1790
2141
|
- regex: '(?:SAMSUNG-)?SM-G3815'
|
1791
2142
|
model: 'GALAXY EXPRESS II'
|
2143
|
+
- regex: '(?:SAMSUNG-)?SM-G7105'
|
2144
|
+
model: 'GALAXY Grand 2'
|
2145
|
+
- regex: '(?:SAMSUNG-)?SM-G800'
|
2146
|
+
model: 'GALAXY S5 mini'
|
1792
2147
|
- regex: '(?:SAMSUNG-)?SM-G9009D'
|
1793
2148
|
model: 'GALAXY S5 Dual-SIM'
|
1794
2149
|
- regex: '(?:SAMSUNG-)?SM-G900'
|
1795
2150
|
model: 'GALAXY S5'
|
1796
2151
|
- regex: '(?:SAMSUNG-)?SM-N7502'
|
1797
|
-
model: '
|
2152
|
+
model: 'GALAXY Note 3 Neo Duos'
|
1798
2153
|
- regex: '(?:SAMSUNG-)?SM-N750[L50]?'
|
1799
|
-
model: '
|
2154
|
+
model: 'GALAXY Note 3 Neo'
|
1800
2155
|
- regex: '(?:SAMSUNG-)?SM-N9002'
|
1801
2156
|
model: 'GALAXY Note 3 Duos'
|
1802
2157
|
- regex: '(?:SAMSUNG-)?SM-N900(?:[05689][VQ]?|[AKLPSTV]|W8)?'
|
1803
2158
|
model: 'GALAXY Note 3'
|
2159
|
+
- regex: '(?:SAMSUNG-)?SCH-I200'
|
2160
|
+
model: 'GALAXY Stellar'
|
2161
|
+
- regex: '(?:SAMSUNG-)?SCH-I829'
|
2162
|
+
model: 'GALAXY Style Duos'
|
2163
|
+
- regex: '(?:SAMSUNG-)?(?:SGH-S730|SCH-R740)'
|
2164
|
+
model: 'GALAXY Discover'
|
2165
|
+
- regex: '(?:SAMSUNG-)?SCH-S738'
|
2166
|
+
model: 'GALAXY Centura'
|
2167
|
+
|
2168
|
+
# explicit phablet models
|
1804
2169
|
- regex: '(?:SAMSUNG-)?SM-N910'
|
1805
2170
|
model: 'GALAXY Note 4'
|
2171
|
+
device: 'phablet'
|
1806
2172
|
- regex: '(?:SAMSUNG-)?SM-N915'
|
1807
2173
|
model: 'GALAXY Note 4 Edge'
|
2174
|
+
device: 'phablet'
|
1808
2175
|
|
1809
2176
|
# general detections
|
1810
2177
|
- regex: '(?:SAMSUNG-)?(GT-(P|N8|N5)[0-9]+[a-z]?)'
|
@@ -1816,16 +2183,16 @@ Samsung:
|
|
1816
2183
|
model: 'GALAXY Note 3'
|
1817
2184
|
- regex: 'SC-04E'
|
1818
2185
|
model: 'GALAXY S4'
|
1819
|
-
- regex: '(?:SAMSUNG-)?((?:SM-[TNP]|GT-P)[a-z0-9_
|
2186
|
+
- regex: '(?:SAMSUNG-)?((?:SM-[TNP]|GT-P)[a-z0-9_\-]+)'
|
1820
2187
|
device: 'tablet'
|
1821
2188
|
model: '$1'
|
1822
|
-
- regex: '((?:SCH|SGH|SPH|SHV|SHW|GT|SM)-[a-z0-9_
|
2189
|
+
- regex: '((?:SCH|SGH|SPH|SHV|SHW|GT|SM)-[a-z0-9_\-]+)'
|
1823
2190
|
model: '$1'
|
1824
2191
|
- regex: 'SAMSUNG[\-][ ]?([a-z0-9]+[\-_][a-z0-9]+)'
|
1825
2192
|
model: '$1'
|
1826
2193
|
- regex: 'SAMSUNG;[ ]?([a-z0-9]+[\-_][a-z0-9]+)'
|
1827
2194
|
model: '$1'
|
1828
|
-
- regex: 'SAMSUNG[ _
|
2195
|
+
- regex: 'SAMSUNG[ _/\-]?([a-z0-9\-]+)'
|
1829
2196
|
model: '$1'
|
1830
2197
|
- regex: 'SAMSUNG;[ ]?([a-z0-9 ]+)'
|
1831
2198
|
model: '$1'
|
@@ -1845,6 +2212,46 @@ Samsung:
|
|
1845
2212
|
- regex: 'sam([rua][0-9]+)'
|
1846
2213
|
model: 'SCH-$1'
|
1847
2214
|
|
2215
|
+
# Smartfren
|
2216
|
+
Smartfren:
|
2217
|
+
regex: 'Smartfren|Androtab|Andromax|PD6D1J|AD682J|AD68[89]G|AD6B1H|AD9A1H|AD682H|AD683G'
|
2218
|
+
device: 'smartphone'
|
2219
|
+
models:
|
2220
|
+
# explicit tablet models
|
2221
|
+
- regex: 'S7 Build'
|
2222
|
+
model: 'Andromax Tab 7.0'
|
2223
|
+
device: 'tablet'
|
2224
|
+
|
2225
|
+
# explicit smartphone models
|
2226
|
+
- regex: 'PD6D1J'
|
2227
|
+
model: 'Andromax V3s'
|
2228
|
+
- regex: 'AD682J'
|
2229
|
+
model: 'Andromax T'
|
2230
|
+
- regex: 'AD688G'
|
2231
|
+
model: 'Andromax C2'
|
2232
|
+
- regex: 'AD689G'
|
2233
|
+
model: 'Andromax i3'
|
2234
|
+
- regex: 'AD682H'
|
2235
|
+
model: 'Andromax i3s'
|
2236
|
+
- regex: 'AD6B1H'
|
2237
|
+
model: 'Andromax G2 Hot'
|
2238
|
+
- regex: 'AD9A1H'
|
2239
|
+
model: 'Andromax G2'
|
2240
|
+
- regex: 'AD683G'
|
2241
|
+
model: 'Andromax I'
|
2242
|
+
- regex: 'New Andromax-i'
|
2243
|
+
model: 'New Andromax I'
|
2244
|
+
|
2245
|
+
- regex: 'Andromax[ _\-]([^/;]+) Build'
|
2246
|
+
model: 'Andromax $1'
|
2247
|
+
- regex: 'Andromax[ _\-]([a-z0-9]+)'
|
2248
|
+
model: 'Andromax $1'
|
2249
|
+
- regex: 'Smartfren[ _\-]([^/;]+) Build'
|
2250
|
+
model: '$1'
|
2251
|
+
- regex: '(Androtab[^/;]+) Build'
|
2252
|
+
model: '$1'
|
2253
|
+
device: 'tablet'
|
2254
|
+
|
1848
2255
|
# SuperSonic
|
1849
2256
|
SuperSonic:
|
1850
2257
|
regex: '(SC-[0-9]+[a-z]+)'
|
@@ -1879,9 +2286,23 @@ Pantech:
|
|
1879
2286
|
|
1880
2287
|
#Polaroid
|
1881
2288
|
Polaroid:
|
1882
|
-
regex: 'Polaroid|(?:PMID|MIDC)[0-9a-z]+ Build|MID(?:1014|0714)'
|
2289
|
+
regex: 'Polaroid|(?:PMID|MIDC)[0-9a-z]+ Build|MID(?:1014|0714)|PRO[VG]?(?:[0-9]{3,}[a-z]*|[0-9]{2}[a-z])'
|
1883
2290
|
device: 'tablet'
|
1884
2291
|
models:
|
2292
|
+
# explicit smartphone models
|
2293
|
+
- regex: 'PRO4611(?:PR201)?'
|
2294
|
+
model: 'Pro4611'
|
2295
|
+
device: 'smartphone'
|
2296
|
+
- regex: 'PROV400'
|
2297
|
+
model: 'Agate'
|
2298
|
+
device: 'smartphone'
|
2299
|
+
- regex: 'PROV350'
|
2300
|
+
model: 'ProV350'
|
2301
|
+
device: 'smartphone'
|
2302
|
+
|
2303
|
+
- regex: 'PRO([VG]?(?:[0-9]{3,}[a-z]*|[0-9]{2}[a-z]))'
|
2304
|
+
model: 'Pro$1'
|
2305
|
+
device: 'smartphone'
|
1885
2306
|
- regex: '(MID(?:1014|0714))'
|
1886
2307
|
model: '$1'
|
1887
2308
|
- regex: '((?:PMID|MIDC)[0-9a-z]+) Build'
|
@@ -1975,9 +2396,9 @@ Spice:
|
|
1975
2396
|
regex: 'Spice'
|
1976
2397
|
device: 'smartphone'
|
1977
2398
|
models:
|
1978
|
-
- regex: 'Spice[ _
|
2399
|
+
- regex: 'Spice[ _\-]?([^/;]+)(?:[\)]| Build)'
|
1979
2400
|
model: '$1'
|
1980
|
-
- regex: 'Spice[ _
|
2401
|
+
- regex: 'Spice[ _\-]?([^/;]+)(?:/|$)'
|
1981
2402
|
model: '$1'
|
1982
2403
|
|
1983
2404
|
# Sharp
|
@@ -2018,88 +2439,6 @@ Softbank:
|
|
2018
2439
|
- regex: 'J-PHONE/[0-9]\.[0-9]/([a-z0-9\-]+)'
|
2019
2440
|
model: '$1'
|
2020
2441
|
|
2021
|
-
# Sony
|
2022
|
-
Sony:
|
2023
|
-
regex: 'Sony(?! ?Ericsson)|SGP|Xperia|C1[569]0[45]|C2[01]0[45]|C2305|C530[236]|C5502|C6[56]0[236]|C6616|C68(?:0[26]|[34]3)|C69(?:0[236]|16|43)|D200[45]|D21(?:0[45]|14)|D22(?:0[236]|12|43)|D230[2356]|D530[36]|D5322|D5503|D65(?:0[23]|43)|LT22i|XL39H'
|
2024
|
-
device: 'smartphone'
|
2025
|
-
models:
|
2026
|
-
# explicit smartphone models
|
2027
|
-
- regex: '(?:Sony)?C150[45]'
|
2028
|
-
model: 'Xperia E'
|
2029
|
-
- regex: '(?:Sony)?C160[45]'
|
2030
|
-
model: 'Xperia E Dual'
|
2031
|
-
- regex: '(?:Sony)?C190[45]'
|
2032
|
-
model: 'Xperia M'
|
2033
|
-
- regex: '(?:Sony)?C200[45]'
|
2034
|
-
model: 'Xperia M Dual'
|
2035
|
-
- regex: '(?:Sony)?C210[45]'
|
2036
|
-
model: 'Xperia L'
|
2037
|
-
- regex: '(?:Sony)?C2305'
|
2038
|
-
model: 'Xperia C'
|
2039
|
-
- regex: '(?:Sony)?C530[236]'
|
2040
|
-
model: 'Xperia SP'
|
2041
|
-
- regex: '(?:Sony)?C5502'
|
2042
|
-
model: 'Xperia ZR'
|
2043
|
-
- regex: '(?:Sony)?C650[236]'
|
2044
|
-
model: 'Xperia ZL'
|
2045
|
-
- regex: '(?:Sony)?C66(?:0[236]|16)'
|
2046
|
-
model: 'Xperia Z'
|
2047
|
-
- regex: '(?:Sony)?(?:C68(?:0[26]|[34]3)|XL39H)'
|
2048
|
-
model: 'Xperia Z Ultra'
|
2049
|
-
- regex: '(?:Sony)?C69(?:0[236]|16|43)'
|
2050
|
-
model: 'Xperia Z1'
|
2051
|
-
- regex: '(?:Sony)?D200[45]'
|
2052
|
-
model: 'Xperia E1'
|
2053
|
-
- regex: '(?:Sony)?D21(?:0[45]|14)'
|
2054
|
-
model: 'Xperia E1 Dual'
|
2055
|
-
- regex: '(?:Sony)?D22(?:0[236]|43)'
|
2056
|
-
model: 'Xperia E3'
|
2057
|
-
- regex: '(?:Sony)?D2212'
|
2058
|
-
model: 'Xperia E3 Dual'
|
2059
|
-
- regex: '(?:Sony)?D2302'
|
2060
|
-
model: 'Xperia M2 Dual'
|
2061
|
-
- regex: '(?:Sony)?D230[356]'
|
2062
|
-
model: 'Xperia M2'
|
2063
|
-
- regex: '(?:Sony)?D530[36]'
|
2064
|
-
model: 'Xperia T2 Ultra'
|
2065
|
-
- regex: '(?:Sony)?D5322'
|
2066
|
-
model: 'Xperia T2 Ultra Dual'
|
2067
|
-
- regex: '(?:Sony)?D5503'
|
2068
|
-
model: 'Xperia Z1 Compact'
|
2069
|
-
- regex: '(?:Sony)?D65(?:0[23]|43)'
|
2070
|
-
model: 'Xperia Z2'
|
2071
|
-
|
2072
|
-
# explicit tablet models
|
2073
|
-
- regex: 'SGP(?:311|312|321) Build'
|
2074
|
-
model: 'Xperia Tablet Z'
|
2075
|
-
device: 'tablet'
|
2076
|
-
- regex: 'SGP(?:511|512|521) Build'
|
2077
|
-
model: 'Xperia Tablet Z2'
|
2078
|
-
device: 'tablet'
|
2079
|
-
- regex: 'SGP(?:6[24]1) Build'
|
2080
|
-
model: 'Xperia Tablet Z3 Compact'
|
2081
|
-
device: 'tablet'
|
2082
|
-
- regex: 'SGPT(?:12|121|122|123|13|131|132|133) Build'
|
2083
|
-
model: 'Xperia Tablet S'
|
2084
|
-
device: 'tablet'
|
2085
|
-
|
2086
|
-
# general detections
|
2087
|
-
- regex: 'Sony (Tablet[^/;]*) Build'
|
2088
|
-
model: '$1'
|
2089
|
-
device: 'tablet'
|
2090
|
-
- regex: '(SGP[^/;]*) Build'
|
2091
|
-
model: '$1'
|
2092
|
-
device: 'tablet'
|
2093
|
-
- regex: 'Xperia ([^/;]*Tablet[^/;]*) Build'
|
2094
|
-
model: 'Xperia $1'
|
2095
|
-
device: 'tablet'
|
2096
|
-
- regex: 'Xperia ([^;/]+) Build'
|
2097
|
-
model: 'Xperia $1'
|
2098
|
-
- regex: 'Sony[ ]?([^/;]*) Build'
|
2099
|
-
model: '$1'
|
2100
|
-
- regex: 'Sony[ ]?([a-z0-9\-]+)'
|
2101
|
-
model: '$1'
|
2102
|
-
|
2103
2442
|
# Kindle
|
2104
2443
|
Kindle:
|
2105
2444
|
regex: 'KF(?:OT|TT|JWI|JWA|SOWI|APWI|THWI) Build|Kindle|Silk/\d+\.\d+'
|
@@ -2161,7 +2500,7 @@ Tecno Mobile:
|
|
2161
2500
|
models:
|
2162
2501
|
- regex: 'Tecno ([^;/]+) Build'
|
2163
2502
|
model: '$1'
|
2164
|
-
- regex: 'Tecno_?([a-z0-9_
|
2503
|
+
- regex: 'Tecno_?([a-z0-9_\-]+)'
|
2165
2504
|
model: '$1'
|
2166
2505
|
|
2167
2506
|
# teXet
|
@@ -2274,11 +2613,11 @@ Wiko:
|
|
2274
2613
|
models:
|
2275
2614
|
- regex: '(?:Wiko-)?CINK(.*) Build'
|
2276
2615
|
model: 'Cink$1'
|
2277
|
-
- regex: '(?:Wiko-)?CINK[ _
|
2616
|
+
- regex: '(?:Wiko-)?CINK[ _\-]([a-z0-9]+)'
|
2278
2617
|
model: 'Cink $1'
|
2279
2618
|
- regex: '(?:Wiko-)?IGGY(.*) Build'
|
2280
2619
|
model: 'Iggy$1'
|
2281
|
-
- regex: '(?:Wiko-)?IGGY[ _
|
2620
|
+
- regex: '(?:Wiko-)?IGGY[ _\-]([a-z0-9]+)'
|
2282
2621
|
model: 'Iggy $1'
|
2283
2622
|
- regex: 'Stairway'
|
2284
2623
|
model: 'Stairway'
|
@@ -2306,9 +2645,9 @@ Wolder:
|
|
2306
2645
|
regex: 'miSmart|miTab'
|
2307
2646
|
device: 'smartphone'
|
2308
2647
|
models:
|
2309
|
-
- regex: 'miSmart[
|
2648
|
+
- regex: 'miSmart[ \-_]?([^/]+) Build'
|
2310
2649
|
model: 'miSmart $1'
|
2311
|
-
- regex: 'miTab[
|
2650
|
+
- regex: 'miTab[ \-_]?([^/]+) Build'
|
2312
2651
|
device: 'tablet'
|
2313
2652
|
model: 'miTab $1'
|
2314
2653
|
|
@@ -2347,9 +2686,9 @@ Toshiba:
|
|
2347
2686
|
regex: 'Toshiba|portalmmm/[12].0 TS'
|
2348
2687
|
device: 'smartphone'
|
2349
2688
|
models:
|
2350
|
-
- regex: 'Toshiba[ /_\-]?([a-z0-9_
|
2689
|
+
- regex: 'Toshiba[ /_\-]?([a-z0-9_ \-]+) Build'
|
2351
2690
|
model: '$1'
|
2352
|
-
- regex: 'Toshiba[ /_\-]?([a-z0-9_
|
2691
|
+
- regex: 'Toshiba[ /_\-]?([a-z0-9_\-]+)'
|
2353
2692
|
model: '$1'
|
2354
2693
|
- regex: 'portalmmm/[12].0 (TS[a-z0-9 ]+)'
|
2355
2694
|
model: '$1'
|
@@ -2410,3 +2749,4 @@ ZTE:
|
|
2410
2749
|
#Nokia:
|
2411
2750
|
# regex: 'Symbian'
|
2412
2751
|
# device: 'feature phone'
|
2752
|
+
|