community icon indicating copy to clipboard operation
community copied to clipboard

Neuste community Mitglieder hervorheben

Open staabm opened this issue 8 years ago • 7 comments

Könnten wir - analog wie bei den FOR addons - die neusten user (z.b. Neu in den letzten 4 wochen) besonders markieren zB Auch mit küken statt „R“ symbol in der Karte

staabm avatar Nov 05 '17 13:11 staabm

Bin gerade nicht sicher, ob und wie elegant wir diese Daten ausgelesen bekommen. Aber wenn das geht, wäre es eine coole Idee!

schuer avatar Nov 05 '17 13:11 schuer

Nochmal drüber nachgedacht: Ich glaube, das kriegen wir nicht hin @staabm. Aktuell liegen die Daten nicht vor, und auch wenn wir die Github-Metadaten einlesen, so wie bei der FOR-Website, sehen wir nicht, wann ein Verzeichnis innerhalb des Repos hinzugekommen ist. Serverseitig käme man weiter, aber GitHub Pages sind komplett statisch.

Konzeptionell kommt hinzu, dass man Marker nicht so einfach mit einem Neu-Label versehen kann, so dass man das Label vermutlich erst im Profillayer zeigen würde. Und da fällt es recht spät auf, so dass der Nutzen kaum mehr gegeben ist.

Alles in allem aus meiner Sicht: Tolle Idee, aber technisch nicht umsetzbar.

schuer avatar Nov 05 '17 13:11 schuer

hmm ggf. via ajax/javascript die github api befragen nach den 10 zuletzt erstellten ordnern unter https://github.com/FriendsOfREDAXO/community/tree/master/_directory/data

ob sowas geht weiß ich nicht?

staabm avatar Nov 05 '17 14:11 staabm

Ich glaube nicht, dass es geht. Aber wenn ich mal Langeweile habe, schaue ich es mir irgendwann an. Oder jemand springt auf das Thema an.

schuer avatar Nov 05 '17 15:11 schuer

Die normale api hat kein sort, man könnte aber über die commits api gehen

staabm avatar Nov 05 '17 15:11 staabm

Ich hatte neulich nochmal über dieses Thema nachgedacht: Für Jekyll mit GitHub Pages gibt es keine Möglichkeit, mit Last modified zu arbeiten. Man kann Plugins für Jekyll schreiben, aber GitHub Pages erlaubt keine Custom Plugins, sondern bringt eine fest definierte Liste von Plugins mit (https://pages.github.com/versions/). Nun gibt es die Möglichkeit, wie @staabm erwähnt, per JS die Commits API (https://developer.github.com/v3/git/commits/) anzusprechen, allerdings scheint es mir wenig effizient und vermutlich ziemlich aufwendig zu sein, aus allen Commits die Last modifieds rauszufriemeln. Zudem wäre es schöner, die Sache serverseitig abzufeiern, damit alles beim Seitenaufruf schon bereitsteht, und wir im Frontend keinen großen Aufwand haben. Für komplexere Aktionen fehlen uns die Tools und die Muße. ;)

Was aber gehen könnte: Travis CI nutzen, um mittels Shellskript die Daten auszulesen und für Jekyll abzulegen, bevor der Build angestoßen wird. Diese Variante könnte sogar recht easy sein, unter der Voraussetzung, dass man fit mit Shellskripten ist (ich nicht).

Also falls im Winter mal Langeweile ist und/oder jemand Lust auf Shellskripts hat: Hier wäre ein Anwendungsfall :)

  1. Alle Ordner in /_directory/data/ durchlaufen und Last Modified der Inhalt auslesen.
  2. Das Ergebnis am liebsten als .yml irgendwo hinschreiben, jeweils mit Ordnernamen als Key und Last Modified als Value.

schuer avatar Oct 08 '18 14:10 schuer

#!/bin/bash

cd _directory/data/

for d in */ ; do
	dir_name=$(stat -c %n "$d")
	echo "${dir_name::-1}: $(git log --format=%ad "$d" | cut -f1 -d$'\n')" >> time.yml
done

mv time.yml ../..

Mit git log --format=%ad kann man die Änderungszeiten der Ordner auslesen. Mit cut löscht man alles außer die erste Zeile und erhält somit die letzte Änderungszeit für den Ordner. Das Script müsste man im Root des Repos ausführen.

Das Format sieht dann so aus:

HarunurRashid: Tue Mar 5 11:28:47 2019 +0600
Lp1950: Thu Feb 14 13:38:00 2019 +0100
abraxas: Thu Feb 21 10:46:44 2019 +0100
aeberhard: Wed Nov 8 09:43:31 2017 +0100
...

Ich würde es über einen Cron job ausführen. Mit incron kann man scheinbar einen Ordner auf Änderungen überwachen.

dundunn avatar Apr 26 '19 09:04 dundunn