mirror of
				https://github.com/iv-org/invidious.git
				synced 2025-10-31 20:51:56 +00:00 
			
		
		
		
	Add job for pulling popular videos
This commit is contained in:
		| @@ -14,7 +14,6 @@ | ||||
| # You should have received a copy of the GNU Affero General Public License | ||||
| # along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||
|  | ||||
| require "crypto/bcrypt/password" | ||||
| require "detect_language" | ||||
| require "digest/md5" | ||||
| require "kemal" | ||||
| @@ -112,6 +111,13 @@ spawn do | ||||
|   end | ||||
| end | ||||
|  | ||||
| popular_videos = [] of ChannelVideo | ||||
| spawn do | ||||
|   pull_popular_videos(PG_DB) do |videos| | ||||
|     popular_videos = videos | ||||
|   end | ||||
| end | ||||
|  | ||||
| decrypt_function = [] of {name: String, value: Int32} | ||||
| spawn do | ||||
|   update_decrypt_function do |function| | ||||
|   | ||||
| @@ -180,6 +180,21 @@ def pull_top_videos(config, db) | ||||
|   end | ||||
| end | ||||
|  | ||||
| def pull_popular_videos(db) | ||||
|   loop do | ||||
|     subscriptions = PG_DB.query_all("SELECT channel FROM \ | ||||
|       (SELECT UNNEST(subscriptions) AS channel FROM users) AS d \ | ||||
|     GROUP BY channel ORDER BY COUNT(channel) DESC LIMIT 40", as: String) | ||||
|  | ||||
|     videos = PG_DB.query_all("SELECT DISTINCT ON (ucid) * FROM \ | ||||
|       channel_videos WHERE ucid IN (#{arg_array(subscriptions)}) \ | ||||
|     ORDER BY ucid, published DESC", subscriptions, as: ChannelVideo).sort_by { |video| video.published }.reverse | ||||
|  | ||||
|     yield videos | ||||
|     Fiber.yield | ||||
|   end | ||||
| end | ||||
|  | ||||
| def update_decrypt_function | ||||
|   loop do | ||||
|     begin | ||||
|   | ||||
| @@ -1,3 +1,5 @@ | ||||
| require "crypto/bcrypt/password" | ||||
|  | ||||
| class User | ||||
|   module PreferencesConverter | ||||
|     def self.from_rs(rs) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Omar Roth
					Omar Roth