@@ -97,49 +97,50 @@ private static function fromSqlData(array $data): self
9797 return $ dataset ;
9898 }
9999
100+ /**
101+ * @throws \rex_sql_exception
102+ */
100103 public static function createSnapshot (Url $ url ): bool
101104 {
102- try {
103- $ url ->setLastScan ();
104- $ response = $ url ->getContent ();
105- $ content = $ response ->getBody ();
106-
107- if ('HTML ' === $ url ->getType ()) {
108- $ content = preg_replace ('/<script\b[^>]*>(.*?)<\/script>/is ' , '' , $ content );
109- $ content = preg_replace ('/<style\b[^>]*>(.*?)<\/style>/is ' , '' , $ content );
110- $ content = preg_replace ('/<noscript\b[^>]*>(.*?)<\/noscript>/is ' , '' , $ content );
111- $ content = strip_tags ($ content , ['img ' , 'video ' ]);
112- }
105+ $ url ->setLastScan ();
106+ $ response = $ url ->getContent ();
107+ $ content = $ response ->getBody ();
108+
109+ if ('HTML ' === $ url ->getType ()) {
110+ $ content = preg_replace ('/<script\b[^>]*>(.*?)<\/script>/is ' , '' , $ content );
111+ $ content = preg_replace ('/<style\b[^>]*>(.*?)<\/style>/is ' , '' , $ content );
112+ $ content = preg_replace ('/<noscript\b[^>]*>(.*?)<\/noscript>/is ' , '' , $ content );
113+ $ content = strip_tags ($ content , ['img ' , 'video ' ]);
114+ }
113115
114- $ hash = md5 ($ content );
116+ $ hash = md5 ($ content );
115117
116- $ sql = rex_sql::factory ();
117- $ sql ->setTable (rex::getTable ('diff_detect_index ' ));
118- $ sql ->setWhere ('url_id = ? ORDER BY createdate DESC LIMIT 1 ' , [$ url ->getId ()]);
119- $ sql ->select ('id,`hash` ' );
118+ $ sql = rex_sql::factory ();
119+ $ sql ->setTable (rex::getTable ('diff_detect_index ' ));
120+ $ sql ->setWhere ('url_id = ? ORDER BY createdate DESC LIMIT 1 ' , [$ url ->getId ()]);
121+ $ sql ->select ('id,`hash` ' );
120122
121- if (0 !== ($ sql ->getRows () ?? 0 ) && $ sql ->getValue ('hash ' ) === $ hash ) {
122- $ sql ->setTable (rex::getTable ('diff_detect_index ' ));
123- $ sql ->setValue ('updatedate ' , date (rex_sql::FORMAT_DATETIME ));
124- $ sql ->setWhere ('id = :id ' , ['id ' => $ sql ->getValue ('id ' )]);
125- $ sql ->update ();
126- return false ;
127- }
123+ var_dump ($ sql ->getValue ('hash ' ));
128124
125+ if (0 !== ($ sql ->getRows () ?? 0 ) && $ sql ->getValue ('hash ' ) === $ hash ) {
129126 $ sql ->setTable (rex::getTable ('diff_detect_index ' ));
130- $ sql ->addGlobalCreateFields ();
131- $ sql ->addGlobalUpdateFields ();
132- $ sql ->setValue ('url_id ' , $ url ->getId ());
133- $ sql ->setValue ('content ' , $ response ->getBody ());
134- $ sql ->setValue ('hash ' , $ hash );
135- $ sql ->setValue ('header ' , $ response ->getHeader ());
136- $ sql ->setValue ('statusCode ' , $ response ->getStatusCode ());
137- $ sql ->setValue ('statusMessage ' , $ response ->getStatusMessage ());
138- $ sql ->insert ();
139- } catch (rex_socket_exception $ e ) {
140- // throw new \rex_exception($e->getMessage());
127+ $ sql ->setValue ('updatedate ' , date (rex_sql::FORMAT_DATETIME ));
128+ $ sql ->setWhere ('id = :id ' , ['id ' => $ sql ->getValue ('id ' )]);
129+ $ sql ->update ();
141130 return false ;
142131 }
132+
133+ $ sql ->setTable (rex::getTable ('diff_detect_index ' ));
134+ $ sql ->addGlobalCreateFields ();
135+ $ sql ->addGlobalUpdateFields ();
136+ $ sql ->setValue ('url_id ' , $ url ->getId ());
137+ $ sql ->setValue ('content ' , $ response ->getBody ());
138+ $ sql ->setValue ('hash ' , $ hash );
139+ $ sql ->setValue ('header ' , $ response ->getHeader ());
140+ $ sql ->setValue ('statusCode ' , $ response ->getStatusCode ());
141+ $ sql ->setValue ('statusMessage ' , $ response ->getStatusMessage ());
142+ $ sql ->insert ();
143+
143144 return true ;
144145 }
145146
0 commit comments