22
33namespace Zakharov \Yii2SeleniumTools \Utils \UserAgent ;
44
5+ use PDO ;
56use Yii ;
6- use yii \helpers \ArrayHelper ;
77use Zakharov \Yii2SeleniumTools \models \UserAgent ;
88use Zakharov \Yii2SeleniumTools \Utils \UserAgent \UserAgentProvider ;
99
@@ -24,19 +24,39 @@ public function __construct(UserAgentProvider $userAgentProvider)
2424 /**
2525 * fill base with user agents by specified in container userAgentProvider
2626 *
27+ * @param string[] $filterKey
2728 * @return int number of inserts
2829 */
29- public function fillBaseWithUserAgents ()
30+ public function fillBaseWithUserAgents ($ filterKeys = [] )
3031 {
3132 $ arrayOfUserAgents = array_values ($ this ->userAgentProvider ->getArrayOfUserAgents ());
3233 if (empty ($ arrayOfUserAgents )) {
3334 return 0 ;
3435 }
36+ $ arrayOfUserAgents = $ this ->filterArrayOfUserAgentsWithFilter ($ arrayOfUserAgents , $ filterKeys );
3537 $ createdAt = (new \DateTime ())->setTimezone (new \DateTimeZone ('UTC ' ))->format ('Y-m-d H:i:s ' );
3638 $ updateArray = array_map (fn ($ item ) => [$ item , $ createdAt ], $ arrayOfUserAgents );
39+
3740 return Yii::$ app ->db
3841 ->createCommand ()
3942 ->batchInsert (UserAgent::tableName (), ['ua ' , 'created_at ' ], $ updateArray )
4043 ->execute ();
4144 }
45+
46+ /**
47+ * filterArrayOfUserAgentsWithFilter
48+ *
49+ * @param array $arrayOfUserAgents
50+ * @param array $filterKeys
51+ * @return void
52+ */
53+ protected function filterArrayOfUserAgentsWithFilter (array $ arrayOfUserAgents , array $ filterKeys = [])
54+ {
55+ if (!empty ($ filterKeys )) {
56+ foreach ($ filterKeys as $ key ) {
57+ $ arrayOfUserAgents = array_filter ($ arrayOfUserAgents , fn ($ item ) => stripos ($ item , $ key ) !== false );
58+ }
59+ }
60+ return $ arrayOfUserAgents ;
61+ }
4262}
0 commit comments