mirror of
https://github.com/discourse/discourse-rewind.git
synced 2025-07-07 14:22:12 +00:00
lint
This commit is contained in:
parent
ef21ee6b35
commit
17e30c3933
@ -9,19 +9,15 @@ module DiscourseRewind
|
|||||||
reading_time: 2_880_000,
|
reading_time: 2_880_000,
|
||||||
book: "The Combined Cosmere works + Wheel of Time",
|
book: "The Combined Cosmere works + Wheel of Time",
|
||||||
isbn: "978-0812511819",
|
isbn: "978-0812511819",
|
||||||
series: true
|
series: true,
|
||||||
},
|
},
|
||||||
identifier: "reading-time"
|
identifier: "reading-time",
|
||||||
}
|
}
|
||||||
|
|
||||||
def call
|
def call
|
||||||
return FakeData if Rails.env.development?
|
return FakeData if Rails.env.development?
|
||||||
|
|
||||||
reading_time =
|
reading_time = UserVisit.where(user_id: user.id).where(visited_at: date).sum(:time_read)
|
||||||
UserVisit
|
|
||||||
.where(user_id: user.id)
|
|
||||||
.where(visited_at: date)
|
|
||||||
.sum(:time_read)
|
|
||||||
book = best_book_fit(reading_time)
|
book = best_book_fit(reading_time)
|
||||||
|
|
||||||
return if book.nil?
|
return if book.nil?
|
||||||
@ -31,9 +27,9 @@ module DiscourseRewind
|
|||||||
reading_time: reading_time,
|
reading_time: reading_time,
|
||||||
book: book[:title],
|
book: book[:title],
|
||||||
isbn: book[:isbn],
|
isbn: book[:isbn],
|
||||||
series: book[:series]
|
series: book[:series],
|
||||||
},
|
},
|
||||||
identifier: "reading-time"
|
identifier: "reading-time",
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -42,138 +38,138 @@ module DiscourseRewind
|
|||||||
"The Hunger Games" => {
|
"The Hunger Games" => {
|
||||||
reading_time: 19_740,
|
reading_time: 19_740,
|
||||||
isbn: "978-0439023481",
|
isbn: "978-0439023481",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"The Metamorphosis" => {
|
"The Metamorphosis" => {
|
||||||
reading_time: 3120,
|
reading_time: 3120,
|
||||||
isbn: "978-0553213690",
|
isbn: "978-0553213690",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"To Kill a Mockingbird" => {
|
"To Kill a Mockingbird" => {
|
||||||
reading_time: 22_800,
|
reading_time: 22_800,
|
||||||
isbn: "978-0061120084",
|
isbn: "978-0061120084",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"Pride and Prejudice" => {
|
"Pride and Prejudice" => {
|
||||||
reading_time: 25_200,
|
reading_time: 25_200,
|
||||||
isbn: "978-1503290563",
|
isbn: "978-1503290563",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"1984" => {
|
"1984" => {
|
||||||
reading_time: 16_800,
|
reading_time: 16_800,
|
||||||
isbn: "978-0451524935",
|
isbn: "978-0451524935",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"The Lord of the Rings" => {
|
"The Lord of the Rings" => {
|
||||||
reading_time: 108_000,
|
reading_time: 108_000,
|
||||||
isbn: "978-0544003415",
|
isbn: "978-0544003415",
|
||||||
series: true
|
series: true,
|
||||||
},
|
},
|
||||||
"Harry Potter and the Sorcerer's Stone" => {
|
"Harry Potter and the Sorcerer's Stone" => {
|
||||||
reading_time: 24_600,
|
reading_time: 24_600,
|
||||||
isbn: "978-0590353427",
|
isbn: "978-0590353427",
|
||||||
series: true
|
series: true,
|
||||||
},
|
},
|
||||||
"The Great Gatsby" => {
|
"The Great Gatsby" => {
|
||||||
reading_time: 12_600,
|
reading_time: 12_600,
|
||||||
isbn: "978-0743273565",
|
isbn: "978-0743273565",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"The Little Prince" => {
|
"The Little Prince" => {
|
||||||
reading_time: 5400,
|
reading_time: 5400,
|
||||||
isbn: "978-0156012195",
|
isbn: "978-0156012195",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"Animal Farm" => {
|
"Animal Farm" => {
|
||||||
reading_time: 7200,
|
reading_time: 7200,
|
||||||
isbn: "978-0451526342",
|
isbn: "978-0451526342",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"The Catcher in the Rye" => {
|
"The Catcher in the Rye" => {
|
||||||
reading_time: 18_000,
|
reading_time: 18_000,
|
||||||
isbn: "978-0316769488",
|
isbn: "978-0316769488",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"Jane Eyre" => {
|
"Jane Eyre" => {
|
||||||
reading_time: 34_200,
|
reading_time: 34_200,
|
||||||
isbn: "978-0141441146",
|
isbn: "978-0141441146",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"Fahrenheit 451" => {
|
"Fahrenheit 451" => {
|
||||||
reading_time: 15_000,
|
reading_time: 15_000,
|
||||||
isbn: "978-1451673319",
|
isbn: "978-1451673319",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"The Hobbit" => {
|
"The Hobbit" => {
|
||||||
reading_time: 27_000,
|
reading_time: 27_000,
|
||||||
isbn: "978-0547928227",
|
isbn: "978-0547928227",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"The Da Vinci Code" => {
|
"The Da Vinci Code" => {
|
||||||
reading_time: 37_800,
|
reading_time: 37_800,
|
||||||
isbn: "978-0307474278",
|
isbn: "978-0307474278",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"Little Women" => {
|
"Little Women" => {
|
||||||
reading_time: 30_000,
|
reading_time: 30_000,
|
||||||
isbn: "978-0147514011",
|
isbn: "978-0147514011",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"One Hundred Years of Solitude" => {
|
"One Hundred Years of Solitude" => {
|
||||||
reading_time: 46_800,
|
reading_time: 46_800,
|
||||||
isbn: "978-0060883287",
|
isbn: "978-0060883287",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"And Then There Were None" => {
|
"And Then There Were None" => {
|
||||||
reading_time: 16_200,
|
reading_time: 16_200,
|
||||||
isbn: "978-0062073488",
|
isbn: "978-0062073488",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"The Alchemist" => {
|
"The Alchemist" => {
|
||||||
reading_time: 10_800,
|
reading_time: 10_800,
|
||||||
isbn: "978-0061122415",
|
isbn: "978-0061122415",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"The Hitchhiker's Guide to the Galaxy" => {
|
"The Hitchhiker's Guide to the Galaxy" => {
|
||||||
reading_time: 12_600,
|
reading_time: 12_600,
|
||||||
isbn: "978-0345391803",
|
isbn: "978-0345391803",
|
||||||
series: false
|
series: false,
|
||||||
},
|
},
|
||||||
"The Complete works of Shakespeare" => {
|
"The Complete works of Shakespeare" => {
|
||||||
reading_time: 180_000,
|
reading_time: 180_000,
|
||||||
isbn: "978-1853268953",
|
isbn: "978-1853268953",
|
||||||
series: true
|
series: true,
|
||||||
},
|
},
|
||||||
"The Game of Thrones Series" => {
|
"The Game of Thrones Series" => {
|
||||||
reading_time: 360_000,
|
reading_time: 360_000,
|
||||||
isbn: "978-0007477159",
|
isbn: "978-0007477159",
|
||||||
series: true
|
series: true,
|
||||||
},
|
},
|
||||||
"Malazan Book of the Fallen" => {
|
"Malazan Book of the Fallen" => {
|
||||||
reading_time: 720_000,
|
reading_time: 720_000,
|
||||||
isbn: "978-0765348821",
|
isbn: "978-0765348821",
|
||||||
series: true
|
series: true,
|
||||||
},
|
},
|
||||||
"Terry Pratchett’s Discworld series" => {
|
"Terry Pratchett’s Discworld series" => {
|
||||||
reading_time: 1_440_000,
|
reading_time: 1_440_000,
|
||||||
isbn: "978-9123684458",
|
isbn: "978-9123684458",
|
||||||
series: true
|
series: true,
|
||||||
},
|
},
|
||||||
"The Wandering Inn web series" => {
|
"The Wandering Inn web series" => {
|
||||||
reading_time: 2_160_000,
|
reading_time: 2_160_000,
|
||||||
isbn: "the-wandering-inn",
|
isbn: "the-wandering-inn",
|
||||||
series: true
|
series: true,
|
||||||
},
|
},
|
||||||
"The Combined Cosmere works + Wheel of Time" => {
|
"The Combined Cosmere works + Wheel of Time" => {
|
||||||
reading_time: 2_880_000,
|
reading_time: 2_880_000,
|
||||||
isbn: "978-0812511819",
|
isbn: "978-0812511819",
|
||||||
series: true
|
series: true,
|
||||||
},
|
},
|
||||||
"The Star Trek novels" => {
|
"The Star Trek novels" => {
|
||||||
reading_time: 3_600_000,
|
reading_time: 3_600_000,
|
||||||
isbn: "978-1852860691",
|
isbn: "978-1852860691",
|
||||||
series: true
|
series: true,
|
||||||
}
|
},
|
||||||
}.symbolize_keys
|
}.symbolize_keys
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -182,10 +178,7 @@ module DiscourseRewind
|
|||||||
books = []
|
books = []
|
||||||
|
|
||||||
while reading_time_rest > 0
|
while reading_time_rest > 0
|
||||||
best_fit =
|
best_fit = popular_books.min_by { |_, v| (v[:reading_time] - reading_time_rest).abs }
|
||||||
popular_books.min_by do |_, v|
|
|
||||||
(v[:reading_time] - reading_time_rest).abs
|
|
||||||
end
|
|
||||||
break if best_fit.nil?
|
break if best_fit.nil?
|
||||||
|
|
||||||
books << best_fit.first
|
books << best_fit.first
|
||||||
@ -195,16 +188,12 @@ module DiscourseRewind
|
|||||||
return if books.empty?
|
return if books.empty?
|
||||||
|
|
||||||
book_title =
|
book_title =
|
||||||
books
|
books.group_by { |book| book }.transform_values(&:count).max_by { |_, count| count }.first
|
||||||
.group_by { |book| book }
|
|
||||||
.transform_values(&:count)
|
|
||||||
.max_by { |_, count| count }
|
|
||||||
.first
|
|
||||||
|
|
||||||
{
|
{
|
||||||
title: book_title,
|
title: book_title,
|
||||||
isbn: popular_books[book_title][:isbn],
|
isbn: popular_books[book_title][:isbn],
|
||||||
series: popular_books[book_title][:series]
|
series: popular_books[book_title][:series],
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user