Kann jemand die TL3-Beförderungslösung für „gelesene Beiträge“ erklären?

Es gibt diesen Codeabschnitt, der mich seitdem nervt:

Ich kann mir einfach nicht erklären, warum die in diesem Zeitraum erstellten Beiträge mit dem Prozentsatz der erforderlichen gelesenen Beiträge multipliziert und dann als Mindestwert verwendet werden. Wenn hier der Prozentsatz der gelesenen Beiträge gemeint ist, wäre es dann nicht: gelesene Beiträge / Anzahl der Beiträge, multipliziert mit 100?

Angenommen, es gab in den letzten x Tagen 9 Beiträge, und die Einstellung verlangt nur 2, sollte die Methode dann nicht einfach 2 zurückgeben, da dies unter der Beitrags-Obergrenze liegt?

Hier sind zur Referenz alle Werte:

[2] pry(main)> TrustLevel3Requirements.num_posts_in_time_period.to_i
=> 9
[3] pry(main)> SiteSetting.tl3_requires_posts_read.to_f
=> 2.0
[4] pry(main)> (
[4] pry(main)>         TrustLevel3Requirements.num_posts_in_time_period.to_i *
[4] pry(main)>           (SiteSetting.tl3_requires_posts_read.to_f / 100.0)
[4] pry(main)>       ).round
=> 0
[5] pry(main)> 9*0.02
=> 0.18
[6] pry(main)> SiteSetting.tl3_requires_posts_read_cap
=> 2000

Verstehe ich die Intention der Methode falsch? Danke.

Die Website-Einstellung tl3_requires_posts_read ist ein Prozentsatz. Nehmen wir an, sie beträgt 10. Während die Obergrenze sicherstellt, dass die Anforderung auf etwas Vernünftiges begrenzt bleibt. Nehmen wir an, sie beträgt 100.

„Ein Benutzer muss 10 % aller Beiträge im Zeitraum lesen, aber nicht mehr als 100.“

Nehmen wir an, es wurden in diesem Zeitraum 500 Beiträge erstellt.

In diesem Fall müsste man 50 Beiträge lesen, um die Anforderung zu erfüllen (10 % dieser Beiträge).

Die Berechnung erfolgt als 500 * (10.0/100.0), um das Ergebnis 50 zu erhalten.

Die Obergrenze setzt jedoch eine obere Schranke.

Wenn deine Obergrenze größer als 50 ist (z. B. 100), hat sie keine Auswirkung.

[50, 100].min gibt 50 zurück.

Aber was ist, wenn es in einem Monat 100.000 Beiträge gibt? In diesem Fall müsste jemand ohne die Obergrenze 10.000 Beiträge lesen, um die Anforderung zu erfüllen.

Die Obergrenze von 100 hält das unter Kontrolle.

[100000 * (10.0/100.0), 100].min gibt 100 zurück.

Macht das Sinn?

Nun, ich nehme an, ich muss mir die Beschreibung der Einstellungen beim nächsten Mal genauer ansehen. Das ergibt absolut Sinn, danke!

Ja, tl3_requires_posts_read könnte durchaus besser etwas wie tl3_requires_percent_posts_read heißen.