mirror of https://github.com/Chocobozzz/PeerTube
parent
e0b56b7495
commit
41ee83423c
560
CREDITS.md
560
CREDITS.md
|
@ -1,262 +1,314 @@
|
||||||
# Code contributors
|
# Code & Translators contributors
|
||||||
|
|
||||||
* [Chocobozzz](https://github.com/Chocobozzz)
|
* Chocobozzz
|
||||||
* [rigelk](https://github.com/rigelk)
|
* Rigel Kent
|
||||||
* [Nutomic](https://github.com/Nutomic)
|
* Bigard Florian
|
||||||
* [gegeweb](https://github.com/gegeweb)
|
* Felix Ableitner
|
||||||
* [joshmorel](https://github.com/joshmorel)
|
* Gérald Niel
|
||||||
* [Jorropo](https://github.com/Jorropo)
|
* Jorropo
|
||||||
* [frankstrater](https://github.com/frankstrater)
|
* Josh Morel
|
||||||
* [buoyantair](https://github.com/buoyantair)
|
* BO41
|
||||||
* [fflorent](https://github.com/fflorent)
|
* Julien Maulny
|
||||||
* [bnjbvr](https://github.com/bnjbvr)
|
* Filip Bengtsson
|
||||||
* [alcalyn](https://github.com/alcalyn)
|
* Frank Sträter
|
||||||
* [jankeromnes](https://github.com/jankeromnes)
|
* buoyantair
|
||||||
* [lucas-dclrcq](https://github.com/lucas-dclrcq)
|
* Attila F
|
||||||
* [JohnXLivingston](https://github.com/JohnXLivingston)
|
* Benjamin Bouvier
|
||||||
* [DavidLibeau](https://github.com/DavidLibeau)
|
* Jan Keromnes
|
||||||
* [kaiyou](https://github.com/kaiyou)
|
* John Livingston
|
||||||
* [ldidry](https://github.com/ldidry)
|
* Lucas Declercq
|
||||||
* [McFlat](https://github.com/McFlat)
|
* David Libeau
|
||||||
* [DimitriGilbert](https://github.com/DimitriGilbert)
|
* Florent F
|
||||||
* [floSoX](https://github.com/floSoX)
|
* Francesc
|
||||||
* [Green-Star](https://github.com/Green-Star)
|
* Luc Didry
|
||||||
* [NassimBounouas](https://github.com/NassimBounouas)
|
* Nassim Bounouas
|
||||||
* [thomaskuntzz](https://github.com/thomaskuntzz)
|
* BRAINS YUM
|
||||||
* [rezonant](https://github.com/rezonant)
|
* Dimitri Gilbert
|
||||||
* [Wirebrass](https://github.com/Wirebrass)
|
* Florent Poinsaut
|
||||||
* [clementbrizard](https://github.com/clementbrizard)
|
* Green-Star
|
||||||
* [LecygneNoir](https://github.com/LecygneNoir)
|
* Micah Elizabeth Scott
|
||||||
* [angristan](https://github.com/angristan)
|
* Phongpanot
|
||||||
* [okhin](https://github.com/okhin)
|
* SVNET Libre
|
||||||
* [daftaupe](https://github.com/daftaupe)
|
* Thomas Kuntz
|
||||||
* [tcitworld](https://github.com/tcitworld)
|
* William Lahti
|
||||||
* [dedesite](https://github.com/dedesite)
|
* Wirebrass
|
||||||
* [Nautigsam](https://github.com/Nautigsam)
|
* Angristan
|
||||||
* [scanlime](https://github.com/scanlime)
|
* GunChleoc
|
||||||
* [am97](https://github.com/am97)
|
* Okhin
|
||||||
* [dadall](https://github.com/dadall)
|
* Pierre-Alain TORET
|
||||||
* [jonathanraes](https://github.com/jonathanraes)
|
* Thomas Citharel
|
||||||
* [yohanboniface](https://github.com/yohanboniface)
|
* clementbrizard
|
||||||
* [anoadragon453](https://github.com/anoadragon453)
|
* kaiyou
|
||||||
* [auberanger](https://github.com/auberanger)
|
* Andréas Livet
|
||||||
* [darnuria](https://github.com/darnuria)
|
* Andrés Maldonado
|
||||||
* [rhaamo](https://github.com/rhaamo)
|
* Aurélien Bertron
|
||||||
* [mrflos](https://github.com/mrflos)
|
* Hans Meiser
|
||||||
* [Yetangitu](https://github.com/Yetangitu)
|
* Jefferson Hernandez
|
||||||
* [jocelynj](https://github.com/jocelynj)
|
* Kemal Oktay Aktoğan
|
||||||
* [lucaspontoexe](https://github.com/lucaspontoexe)
|
* LecygneNoir
|
||||||
* [Findus23](https://github.com/Findus23)
|
* Leopere
|
||||||
* [flyingrub](https://github.com/flyingrub)
|
* Marcin Mikołajczak
|
||||||
* [valvin1](https://github.com/valvin1)
|
* Yohan Boniface
|
||||||
* [taziden](https://github.com/taziden)
|
* am97
|
||||||
* [AutomCoding](https://github.com/AutomCoding)
|
* anotheranonymoususer
|
||||||
* [sticmac](https://github.com/sticmac)
|
* dada
|
||||||
* [barbeque](https://github.com/barbeque)
|
* frankdelange
|
||||||
* [luzpaz](https://github.com/luzpaz)
|
* jonathanraes
|
||||||
* [acid-chicken](https://github.com/acid-chicken)
|
* Andrew Morgan
|
||||||
* [louistio](https://github.com/louistio)
|
* Aurélien Béranger
|
||||||
* [qsypoq](https://github.com/qsypoq)
|
* Axel Viala
|
||||||
* [daker](https://github.com/daker)
|
* ButterflyOfFire
|
||||||
* [xyproto](https://github.com/xyproto)
|
* Dashie
|
||||||
* [NaPs](https://github.com/NaPs)
|
* Dirk Kelly
|
||||||
* [Anton-Latukha](https://github.com/Anton-Latukha)
|
* Florent Fayolle
|
||||||
* [noplanman](https://github.com/noplanman)
|
* Florian
|
||||||
* [austinheap](https://github.com/austinheap)
|
* Frank de Lange
|
||||||
* [BO41](https://github.com/BO41)
|
* Gaëtan Rizio
|
||||||
* [benabbottnz](https://github.com/benabbottnz)
|
* Jocelyn Jaubert
|
||||||
* [ewft](https://github.com/ewft)
|
* Julien Lemaire
|
||||||
* [bradsk88](https://github.com/bradsk88)
|
* Lucas Teixeira
|
||||||
* [trosel](https://github.com/trosel)
|
* Lukas Winkler
|
||||||
* [Ealhad](https://github.com/Ealhad)
|
* Millicent Billette
|
||||||
* [claudehohl](https://github.com/claudehohl)
|
* NorbiPeti
|
||||||
* [DeeJayBro](https://github.com/DeeJayBro)
|
* Pierre Jaury
|
||||||
* [dirkkelly](https://github.com/dirkkelly)
|
* Quentin
|
||||||
* [Edznux](https://github.com/Edznux)
|
* Ronan
|
||||||
* [ebrehault](https://github.com/ebrehault)
|
* SerCom_KC
|
||||||
* [DatBewar](https://github.com/DatBewar)
|
* Valvin
|
||||||
* [ReK2Fernandez](https://github.com/ReK2Fernandez)
|
* ahmadsharifian
|
||||||
* [grizio](https://github.com/grizio)
|
* taziden
|
||||||
* [Glandos](https://github.com/Glandos)
|
* victor héry
|
||||||
* [lanodan](https://github.com/lanodan)
|
* Acid Chicken (硫酸鶏)
|
||||||
* [HesioZ](https://github.com/HesioZ)
|
* Adam Gauthier
|
||||||
* [jacen92](https://github.com/jacen92)
|
* Adam Magnier
|
||||||
* [realityfabric](https://github.com/realityfabric)
|
* Adnane Belmadiaf
|
||||||
* [jlebras](https://github.com/jlebras)
|
* Alexander F. Rødseth
|
||||||
* [Knackie](https://github.com/Knackie)
|
* Antoine Millet
|
||||||
* [mkody](https://github.com/mkody)
|
* Anton Latukha
|
||||||
* [pichouk](https://github.com/pichouk)
|
* Armando Lüscher
|
||||||
* [LeoMouyna](https://github.com/LeoMouyna)
|
* Artem Prosvetov
|
||||||
* [Leopere](https://github.com/Leopere)
|
* Asier Iturralde Sarasola
|
||||||
* [LiPeK](https://github.com/LiPeK)
|
* Austin Heap
|
||||||
* [radiantly](https://github.com/radiantly)
|
* Autom
|
||||||
* [LoveIsGrief](https://github.com/LoveIsGrief)
|
* Ben Abbott
|
||||||
* [zapashcanon](https://github.com/zapashcanon)
|
* Ben Lubar
|
||||||
* [mart-e](https://github.com/mart-e)
|
* Benjamin EWFT
|
||||||
* [0mp](https://github.com/0mp)
|
* Brad Johnson
|
||||||
* [magopian](https://github.com/magopian)
|
* Cale
|
||||||
* [mkoppmann](https://github.com/mkoppmann)
|
* Ch
|
||||||
* [1000i100](https://github.com/1000i100)
|
* Charles de Lacombe
|
||||||
* [roipoussiere](https://github.com/roipoussiere)
|
* Claude
|
||||||
* [zallek](https://github.com/zallek)
|
* Clément Brizard
|
||||||
* [zeograd](https://github.com/zeograd)
|
* DeeJayBro
|
||||||
* [pjoubert-](https://github.com/pjoubert-)
|
* DontUseGithub
|
||||||
* [gbip](https://github.com/gbip)
|
* Edouard SCHWEISGUTH
|
||||||
* [PhieF](https://github.com/PhieF)
|
* Edwin Alberto Amado Baron
|
||||||
* [pdurbin](https://github.com/pdurbin)
|
* Eric Brehault
|
||||||
* [quentinDupont](https://github.com/quentinDupont)
|
* Erwan Croze
|
||||||
* [Quenty31](https://github.com/Quenty31)
|
* Fabio Agreles Bezerra
|
||||||
* [sundowndev](https://github.com/sundowndev)
|
* Fernandez, ReK2
|
||||||
* [robinkooli](https://github.com/robinkooli)
|
* Glandos
|
||||||
* [sesn](https://github.com/sesn)
|
* Haelwenn (lanodan) Monnier
|
||||||
* [ALSai](https://github.com/ALSai)
|
* HesioZ
|
||||||
* [Simounet](https://github.com/Simounet)
|
* Jacen
|
||||||
* [sschueller](https://github.com/sschueller)
|
* Jacob
|
||||||
* [TrashMacNugget](https://github.com/TrashMacNugget)
|
* Jacques Foucry
|
||||||
* [FrozenDroid](https://github.com/FrozenDroid)
|
* Jagannath Bhat
|
||||||
* [fallen](https://github.com/fallen)
|
* Jarosław Maciejewski
|
||||||
* [melongbob](https://github.com/melongbob)
|
* Jeff Huang
|
||||||
* [anmol26s](https://github.com/anmol26s)
|
* Jessica Fairchild
|
||||||
* [imbsky](https://github.com/imbsky)
|
* Julien Le Bras
|
||||||
* [ctlaltdefeat](https://github.com/ctlaltdefeat)
|
* Knackie
|
||||||
* [jomo](https://github.com/jomo)
|
* Kody
|
||||||
* [libertysoft3](https://github.com/libertysoft3)
|
* Kyâne Pichou
|
||||||
* [lsde](https://github.com/lsde)
|
* Leo Mouyna
|
||||||
* [brain-zhang](https://github.com/brain-zhang)
|
* Lesterpig
|
||||||
* [norrist](https://github.com/norrist)
|
* LiPeK
|
||||||
* [osauzet](https://github.com/osauzet)
|
* Lint
|
||||||
* [SansPseudoFix](https://github.com/SansPseudoFix)
|
* LoveIsGrief
|
||||||
* [tomamplius](https://github.com/tomamplius)
|
* Léo Andrès
|
||||||
* [tuxayo](https://github.com/tuxayo)
|
* ManMade-cube42
|
||||||
* [victor-long](https://github.com/victor-long)
|
* Manuel Viens
|
||||||
* [zacharystenger](https://github.com/zacharystenger)
|
* Marco Zehe
|
||||||
* [ewasion](https://github.com/ewasion)
|
* Markus Richter
|
||||||
|
* Martin Trigaux
|
||||||
|
* Mateusz Piotrowski
|
||||||
# Translation contributors
|
* Mathieu Agopian
|
||||||
|
* Matthieu De Beule
|
||||||
* [abdhessuk](https://trad.framasoft.org/zanata/profile/view/abdhessuk)
|
* Michael Koppmann
|
||||||
* [abidin24](https://trad.framasoft.org/zanata/profile/view/abidin24)
|
* Mike
|
||||||
* [aditoo](https://trad.framasoft.org/zanata/profile/view/aditoo)
|
* MrGiga
|
||||||
* [alice](https://trad.framasoft.org/zanata/profile/view/alice)
|
* Mélanie Pin
|
||||||
* [anastasia](https://trad.framasoft.org/zanata/profile/view/anastasia)
|
* Nathanaël J
|
||||||
* [autom](https://trad.framasoft.org/zanata/profile/view/autom)
|
* Nicolas Fortin
|
||||||
* [balaji](https://trad.framasoft.org/zanata/profile/view/balaji)
|
* Niklas Reimer
|
||||||
* [bristow](https://trad.framasoft.org/zanata/profile/view/bristow)
|
* Nitesh Sawant
|
||||||
* [butterflyoffire](https://trad.framasoft.org/zanata/profile/view/butterflyoffire)
|
* Olivier Jolly
|
||||||
* [chocobozzz](https://trad.framasoft.org/zanata/profile/view/chocobozzz)
|
* Pablo Joubert
|
||||||
* [claichou](https://trad.framasoft.org/zanata/profile/view/claichou)
|
* Paul FLORENCE
|
||||||
* [degrange](https://trad.framasoft.org/zanata/profile/view/degrange)
|
* PhieF
|
||||||
* [dibek](https://trad.framasoft.org/zanata/profile/view/dibek)
|
* Philip Durbin
|
||||||
* [edu](https://trad.framasoft.org/zanata/profile/view/edu)
|
* Predatorix Phoenix
|
||||||
* [ehsaan](https://trad.framasoft.org/zanata/profile/view/ehsaan)
|
* Quentin Dupont
|
||||||
* [esoforte](https://trad.framasoft.org/zanata/profile/view/esoforte)
|
* Quentí
|
||||||
* [fkohrt](https://trad.framasoft.org/zanata/profile/view/fkohrt)
|
* Raphael
|
||||||
* [giqtaqisi](https://trad.framasoft.org/zanata/profile/view/giqtaqisi)
|
* Robin
|
||||||
* [goofy](https://trad.framasoft.org/zanata/profile/view/goofy)
|
* Sankar
|
||||||
* [gorkaazk](https://trad.framasoft.org/zanata/profile/view/gorkaazk)
|
* Simon Gilliot
|
||||||
* [gwendald](https://trad.framasoft.org/zanata/profile/view/gwendald)
|
* Simounet
|
||||||
* [h3zjp](https://trad.framasoft.org/zanata/profile/view/h3zjp)
|
* Stefan Schüller
|
||||||
* [jfblanc](https://trad.framasoft.org/zanata/profile/view/jfblanc)
|
* Tomás Sebastián Romero
|
||||||
* [jhertel](https://trad.framasoft.org/zanata/profile/view/jhertel)
|
* TrashMacNugget
|
||||||
* [jmf](https://trad.framasoft.org/zanata/profile/view/jmf)
|
* Vincent Stakenburg
|
||||||
* [jorropo](https://trad.framasoft.org/zanata/profile/view/jorropo)
|
* Yann Sionneau
|
||||||
* [kairozen](https://trad.framasoft.org/zanata/profile/view/kairozen)
|
* Yorwba
|
||||||
* [kedemferre](https://trad.framasoft.org/zanata/profile/view/kedemferre)
|
* Yun
|
||||||
* [kousha](https://trad.framasoft.org/zanata/profile/view/kousha)
|
* Zig-03
|
||||||
* [krkk](https://trad.framasoft.org/zanata/profile/view/krkk)
|
* anmol26s
|
||||||
* [landrok](https://trad.framasoft.org/zanata/profile/view/landrok)
|
* augier
|
||||||
* [leeroyepold48](https://trad.framasoft.org/zanata/profile/view/leeroyepold48)
|
* bikepunk
|
||||||
* [m4sk1n](https://trad.framasoft.org/zanata/profile/view/m4sk1n)
|
* bsky
|
||||||
* [matograine](https://trad.framasoft.org/zanata/profile/view/matograine)
|
* ctlaltdefeat
|
||||||
* [medow](https://trad.framasoft.org/zanata/profile/view/medow)
|
* jomo
|
||||||
* [mhu](https://trad.framasoft.org/zanata/profile/view/mhu)
|
* libertysoft3
|
||||||
* [midgard](https://trad.framasoft.org/zanata/profile/view/midgard)
|
* lsde
|
||||||
* [nbrucy](https://trad.framasoft.org/zanata/profile/view/nbrucy)
|
* luz.paz
|
||||||
* [nitai](https://trad.framasoft.org/zanata/profile/view/nitai)
|
* luzpaz
|
||||||
* [noncommutativegeo](https://trad.framasoft.org/zanata/profile/view/noncommutativegeo)
|
* memorybox
|
||||||
* [nopsidy](https://trad.framasoft.org/zanata/profile/view/nopsidy)
|
* mike stedman
|
||||||
* [nvivant](https://trad.framasoft.org/zanata/profile/view/nvivant)
|
* morteza
|
||||||
* [osoitz](https://trad.framasoft.org/zanata/profile/view/osoitz)
|
* norrist
|
||||||
* [outloudvi](https://trad.framasoft.org/zanata/profile/view/outloudvi)
|
* numéro6
|
||||||
* [quentin](https://trad.framasoft.org/zanata/profile/view/quentin)
|
* osauzet
|
||||||
* [quentind](https://trad.framasoft.org/zanata/profile/view/quentind)
|
* potedeo
|
||||||
* [rafaelff](https://trad.framasoft.org/zanata/profile/view/rafaelff)
|
* spf
|
||||||
* [rigelk](https://trad.framasoft.org/zanata/profile/view/rigelk)
|
* tilllt
|
||||||
* [s8321414](https://trad.framasoft.org/zanata/profile/view/s8321414)
|
* tomamplius
|
||||||
* [sato_ss](https://trad.framasoft.org/zanata/profile/view/sato_ss)
|
* tuxayo
|
||||||
* [sercom_kc](https://trad.framasoft.org/zanata/profile/view/sercom_kc)
|
* victor-long
|
||||||
* [severo](https://trad.framasoft.org/zanata/profile/view/severo)
|
* zacharystenger
|
||||||
* [silkevicious](https://trad.framasoft.org/zanata/profile/view/silkevicious)
|
* noisawe
|
||||||
* [sosha](https://trad.framasoft.org/zanata/profile/view/sosha)
|
* abdhessuk
|
||||||
* [spla](https://trad.framasoft.org/zanata/profile/view/spla)
|
* abidin24
|
||||||
* [strubbl](https://trad.framasoft.org/zanata/profile/view/strubbl)
|
* aditoo
|
||||||
* [swedneck](https://trad.framasoft.org/zanata/profile/view/swedneck)
|
* alice
|
||||||
* [tagomago](https://trad.framasoft.org/zanata/profile/view/tagomago)
|
* anastasia
|
||||||
* [talone](https://trad.framasoft.org/zanata/profile/view/talone)
|
* autom
|
||||||
* [thibaultmartin](https://trad.framasoft.org/zanata/profile/view/thibaultmartin)
|
* balaji
|
||||||
* [tirifto](https://trad.framasoft.org/zanata/profile/view/tirifto)
|
* bristow
|
||||||
* [tuxayo](https://trad.framasoft.org/zanata/profile/view/tuxayo)
|
* butterflyoffire
|
||||||
* [unextro](https://trad.framasoft.org/zanata/profile/view/unextro)
|
* claichou
|
||||||
* [unzarida](https://trad.framasoft.org/zanata/profile/view/unzarida)
|
* degrange
|
||||||
* [vincent](https://trad.framasoft.org/zanata/profile/view/vincent)
|
* dibek
|
||||||
* [wanhua](https://trad.framasoft.org/zanata/profile/view/wanhua)
|
* edu
|
||||||
* [xinayder](https://trad.framasoft.org/zanata/profile/view/xinayder)
|
* ehsaan
|
||||||
* [xosem](https://trad.framasoft.org/zanata/profile/view/xosem)
|
* esoforte
|
||||||
* [zveryok](https://trad.framasoft.org/zanata/profile/view/zveryok)
|
* fkohrt
|
||||||
* [6543](https://trad.framasoft.org/zanata/profile/view/6543)
|
* giqtaqisi
|
||||||
* [aasami](https://trad.framasoft.org/zanata/profile/view/aasami)
|
* goofy
|
||||||
* [alidemirtas](https://trad.framasoft.org/zanata/profile/view/alidemirtas)
|
* gorkaazk
|
||||||
* [alpha](https://trad.framasoft.org/zanata/profile/view/alpha)
|
* gwendald
|
||||||
* [ariasuni](https://trad.framasoft.org/zanata/profile/view/ariasuni)
|
* h3zjp
|
||||||
* [bfonton](https://trad.framasoft.org/zanata/profile/view/bfonton)
|
* jfblanc
|
||||||
* [c0dr](https://trad.framasoft.org/zanata/profile/view/c0dr)
|
* jhertel
|
||||||
* [canony](https://trad.framasoft.org/zanata/profile/view/canony)
|
* jmf
|
||||||
* [cat](https://trad.framasoft.org/zanata/profile/view/cat)
|
* jorropo
|
||||||
* [clerie](https://trad.framasoft.org/zanata/profile/view/clerie)
|
* kairozen
|
||||||
* [curupira](https://trad.framasoft.org/zanata/profile/view/curupira)
|
* kedemferre
|
||||||
* [dhsets](https://trad.framasoft.org/zanata/profile/view/dhsets)
|
* kousha
|
||||||
* [digitalkiller](https://trad.framasoft.org/zanata/profile/view/digitalkiller)
|
* krkk
|
||||||
* [dwsage](https://trad.framasoft.org/zanata/profile/view/dwsage)
|
* landrok
|
||||||
* [flauta](https://trad.framasoft.org/zanata/profile/view/flauta)
|
* leeroyepold48
|
||||||
* [frankstrater](https://trad.framasoft.org/zanata/profile/view/frankstrater)
|
* m4sk1n
|
||||||
* [gillux](https://trad.framasoft.org/zanata/profile/view/gillux)
|
* matograine
|
||||||
* [gunchleoc](https://trad.framasoft.org/zanata/profile/view/gunchleoc)
|
* medow
|
||||||
* [jaidedtd](https://trad.framasoft.org/zanata/profile/view/jaidedtd)
|
* mhu
|
||||||
* [joss2lyon](https://trad.framasoft.org/zanata/profile/view/joss2lyon)
|
* midgard
|
||||||
* [kekkotranslates](https://trad.framasoft.org/zanata/profile/view/kekkotranslates)
|
* nbrucy
|
||||||
* [kingu](https://trad.framasoft.org/zanata/profile/view/kingu)
|
* nitai
|
||||||
* [kittybecca](https://trad.framasoft.org/zanata/profile/view/kittybecca)
|
* noncommutativegeo
|
||||||
* [knuxify](https://trad.framasoft.org/zanata/profile/view/knuxify)
|
* nopsidy
|
||||||
* [lapor](https://trad.framasoft.org/zanata/profile/view/lapor)
|
* nvivant
|
||||||
* [laufor](https://trad.framasoft.org/zanata/profile/view/laufor)
|
* osoitz
|
||||||
* [lstamellos](https://trad.framasoft.org/zanata/profile/view/lstamellos)
|
* outloudvi
|
||||||
* [lw1](https://trad.framasoft.org/zanata/profile/view/lw1)
|
* quentin
|
||||||
* [mablr](https://trad.framasoft.org/zanata/profile/view/mablr)
|
* quentind
|
||||||
* [marcinmalecki](https://trad.framasoft.org/zanata/profile/view/marcinmalecki)
|
* rafaelff
|
||||||
* [mayana](https://trad.framasoft.org/zanata/profile/view/mayana)
|
* rigelk
|
||||||
* [mikeorlov](https://trad.framasoft.org/zanata/profile/view/mikeorlov)
|
* s8321414
|
||||||
* [nin](https://trad.framasoft.org/zanata/profile/view/nin)
|
* sato_ss
|
||||||
* [norbipeti](https://trad.framasoft.org/zanata/profile/view/norbipeti)
|
* sercom_kc
|
||||||
* [ppnplus](https://trad.framasoft.org/zanata/profile/view/ppnplus)
|
* severo
|
||||||
* [predatorix](https://trad.framasoft.org/zanata/profile/view/predatorix)
|
* silkevicious
|
||||||
* [robin](https://trad.framasoft.org/zanata/profile/view/robin)
|
* sosha
|
||||||
* [rond](https://trad.framasoft.org/zanata/profile/view/rond)
|
* spla
|
||||||
* [secreet](https://trad.framasoft.org/zanata/profile/view/secreet)
|
* strubbl
|
||||||
* [sftblw](https://trad.framasoft.org/zanata/profile/view/sftblw)
|
* swedneck
|
||||||
* [sporiff](https://trad.framasoft.org/zanata/profile/view/sporiff)
|
* tagomago
|
||||||
* [tekuteku](https://trad.framasoft.org/zanata/profile/view/tekuteku)
|
* talone
|
||||||
* [thecatjustmeow](https://trad.framasoft.org/zanata/profile/view/thecatjustmeow)
|
* thibaultmartin
|
||||||
* [tmota](https://trad.framasoft.org/zanata/profile/view/tmota)
|
* tirifto
|
||||||
* [uranix](https://trad.framasoft.org/zanata/profile/view/uranix)
|
* tuxayo
|
||||||
* [wakutiteo](https://trad.framasoft.org/zanata/profile/view/wakutiteo)
|
* unextro
|
||||||
* [wonderingdane](https://trad.framasoft.org/zanata/profile/view/wonderingdane)
|
* unzarida
|
||||||
* [zeynepeliacik](https://trad.framasoft.org/zanata/profile/view/zeynepeliacik)
|
* vincent
|
||||||
|
* wanhua
|
||||||
|
* xinayder
|
||||||
|
* xosem
|
||||||
|
* zveryok
|
||||||
|
* 6543
|
||||||
|
* aasami
|
||||||
|
* alidemirtas
|
||||||
|
* alpha
|
||||||
|
* ariasuni
|
||||||
|
* bfonton
|
||||||
|
* c0dr
|
||||||
|
* canony
|
||||||
|
* cat
|
||||||
|
* clerie
|
||||||
|
* curupira
|
||||||
|
* dhsets
|
||||||
|
* digitalkiller
|
||||||
|
* dwsage
|
||||||
|
* flauta
|
||||||
|
* frankstrater
|
||||||
|
* gillux
|
||||||
|
* gunchleoc
|
||||||
|
* jaidedtd
|
||||||
|
* joss2lyon
|
||||||
|
* kekkotranslates
|
||||||
|
* kingu
|
||||||
|
* kittybecca
|
||||||
|
* knuxify
|
||||||
|
* lapor
|
||||||
|
* laufor
|
||||||
|
* lstamellos
|
||||||
|
* lw1
|
||||||
|
* mablr
|
||||||
|
* marcinmalecki
|
||||||
|
* mayana
|
||||||
|
* mikeorlov
|
||||||
|
* nin
|
||||||
|
* norbipeti
|
||||||
|
* ppnplus
|
||||||
|
* predatorix
|
||||||
|
* robin
|
||||||
|
* rond
|
||||||
|
* secreet
|
||||||
|
* sftblw
|
||||||
|
* sporiff
|
||||||
|
* tekuteku
|
||||||
|
* thecatjustmeow
|
||||||
|
* tmota
|
||||||
|
* uranix
|
||||||
|
* wakutiteo
|
||||||
|
* wonderingdane
|
||||||
|
* zeynepeliacik
|
||||||
|
|
||||||
|
|
||||||
# Design
|
# Design
|
||||||
|
|
||||||
* [Olivier Massain](https://twitter.com/omassain)
|
* [Olivier Massain](https://dribbble.com/omassain)
|
||||||
|
|
||||||
|
|
||||||
# Icons
|
# Icons
|
||||||
|
|
|
@ -5,6 +5,7 @@ registerTSPaths()
|
||||||
import { doRequest } from '../server/helpers/requests'
|
import { doRequest } from '../server/helpers/requests'
|
||||||
import { readFileSync } from 'fs-extra'
|
import { readFileSync } from 'fs-extra'
|
||||||
import { uniqBy } from 'lodash'
|
import { uniqBy } from 'lodash'
|
||||||
|
import { execCLI } from '@shared/extra-utils'
|
||||||
|
|
||||||
run()
|
run()
|
||||||
.then(() => process.exit(0))
|
.then(() => process.exit(0))
|
||||||
|
@ -14,33 +15,20 @@ run()
|
||||||
})
|
})
|
||||||
|
|
||||||
async function run () {
|
async function run () {
|
||||||
|
const blacklist = getContributorsBlacklist()
|
||||||
|
|
||||||
{
|
let contributors = await getGitContributors()
|
||||||
const contributors = await fetchGithub('https://api.github.com/repos/chocobozzz/peertube/contributors')
|
contributors = contributors.concat(getZanataContributors())
|
||||||
|
contributors = contributors.filter(c => blacklist[c.username] !== true)
|
||||||
|
|
||||||
console.log('# Code contributors\n')
|
console.log('# Code & Translators contributors\n')
|
||||||
for (const contributor of contributors) {
|
for (const contributor of contributors) {
|
||||||
const contributorUrl = contributor.url.replace('api.github.com/users', 'github.com')
|
console.log(` * ${contributor.username}`)
|
||||||
console.log(` * [${contributor.login}](${contributorUrl})`)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
const zanataConfig = readFileSync(require('os').homedir() + '/.config/zanata.ini').toString()
|
|
||||||
const zanataUsername = zanataConfig.match('.username=([^\n]+)')[1]
|
|
||||||
const zanataToken = zanataConfig.match('.key=([^\n]+)')[1]
|
|
||||||
|
|
||||||
const translators = await fetchZanata(zanataUsername, zanataToken)
|
|
||||||
|
|
||||||
console.log('\n\n# Translation contributors\n')
|
|
||||||
for (const translator of translators) {
|
|
||||||
console.log(` * [${translator.username}](https://trad.framasoft.org/zanata/profile/view/${translator.username})`)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
console.log('\n\n# Design\n')
|
console.log('\n\n# Design\n')
|
||||||
console.log(' * [Olivier Massain](https://twitter.com/omassain)')
|
console.log(' * [Olivier Massain](https://dribbble.com/omassain)')
|
||||||
|
|
||||||
console.log('\n\n# Icons\n')
|
console.log('\n\n# Icons\n')
|
||||||
console.log(' * [Robbie Pearce](https://robbiepearce.com/softies/)')
|
console.log(' * [Robbie Pearce](https://robbiepearce.com/softies/)')
|
||||||
|
@ -49,47 +37,140 @@ async function run () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function get (url: string, headers: any = {}) {
|
async function getGitContributors () {
|
||||||
return doRequest<any>({
|
const output = await execCLI(`git --no-pager shortlog -sn < /dev/tty | sed 's/^\\s\\+[0-9]\\+\\s\\+//g'`)
|
||||||
uri: url,
|
|
||||||
json: true,
|
return output.split('\n')
|
||||||
headers: Object.assign(headers, {
|
.filter(l => !!l)
|
||||||
'User-Agent': 'PeerTube-App'
|
.map(l => ({ username: l }))
|
||||||
})
|
|
||||||
}).then(res => res.body)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function fetchGithub (url: string) {
|
// Zanata is dead, don't loose the contributors name
|
||||||
let next = url
|
function getZanataContributors () {
|
||||||
let allResult = []
|
return [ { 'username': 'abdhessuk', 'name': 'Abd Hessuk' }, { 'username': 'abidin24', 'name': 'abidin toumi' }, {
|
||||||
|
'username': 'aditoo',
|
||||||
|
'name': 'Lorem Ipsum'
|
||||||
|
}, { 'username': 'alice', 'name': 'Alice' }, { 'username': 'anastasia', 'name': 'Anastasia' }, {
|
||||||
|
'username': 'autom',
|
||||||
|
'name': 'Filip Bengtsson'
|
||||||
|
}, { 'username': 'balaji', 'name': 'Balaji' }, { 'username': 'bristow', 'name': 'Cédric F.' }, {
|
||||||
|
'username': 'butterflyoffire',
|
||||||
|
'name': 'ButterflyOfFire'
|
||||||
|
}, { 'username': 'chocobozzz', 'name': 'Chocobozzz' }, { 'username': 'claichou', 'name': 'Claire Mohin' }, {
|
||||||
|
'username': 'degrange',
|
||||||
|
'name': 'Degrange Mathieu'
|
||||||
|
}, { 'username': 'dibek', 'name': 'Giuseppe Di Bella' }, { 'username': 'edu', 'name': 'eduardo' }, {
|
||||||
|
'username': 'ehsaan',
|
||||||
|
'name': 'ehsaan'
|
||||||
|
}, { 'username': 'esoforte', 'name': 'Ondřej Kotas' }, { 'username': 'fkohrt', 'name': 'Florian Kohrt' }, {
|
||||||
|
'username': 'giqtaqisi',
|
||||||
|
'name': 'Ian Townsend'
|
||||||
|
}, { 'username': 'goofy', 'name': 'goofy' }, { 'username': 'gorkaazk', 'name': 'Gorka Azkarate Zubiaur' }, {
|
||||||
|
'username': 'gwendald',
|
||||||
|
'name': 'GwendalD'
|
||||||
|
}, { 'username': 'h3zjp', 'name': 'h3zjp' }, { 'username': 'jfblanc', 'name': 'Joan Francés Blanc' }, {
|
||||||
|
'username': 'jhertel',
|
||||||
|
'name': 'Jean Hertel'
|
||||||
|
}, { 'username': 'jmf', 'name': 'Jan-Michael Franz' }, { 'username': 'jorropo', 'name': 'Jorropo' }, {
|
||||||
|
'username': 'kairozen',
|
||||||
|
'name': 'Geoffrey Baudelet'
|
||||||
|
}, { 'username': 'kedemferre', 'name': 'Kédem Ferré' }, { 'username': 'kousha', 'name': 'Kousha Zanjani' }, {
|
||||||
|
'username': 'krkk',
|
||||||
|
'name': 'Karol Kosek'
|
||||||
|
}, { 'username': 'landrok', 'name': 'Landrok' }, { 'username': 'leeroyepold48', 'name': 'Leeroy Epold' }, {
|
||||||
|
'username': 'm4sk1n',
|
||||||
|
'name': 'marcin mikołajczak'
|
||||||
|
}, { 'username': 'matograine', 'name': 'tom ngr' }, { 'username': 'medow', 'name': 'Mahir Ahmed' }, {
|
||||||
|
'username': 'mhu',
|
||||||
|
'name': 'Max Hübner'
|
||||||
|
}, { 'username': 'midgard', 'name': 'Midgard' }, { 'username': 'nbrucy', 'name': 'N. B.' }, {
|
||||||
|
'username': 'nitai',
|
||||||
|
'name': 'nitai bezerra'
|
||||||
|
}, { 'username': 'noncommutativegeo', 'name': 'Andrea Panontin' }, { 'username': 'nopsidy', 'name': 'McFlat' }, {
|
||||||
|
'username': 'nvivant',
|
||||||
|
'name': 'Nicolas Vivant'
|
||||||
|
}, { 'username': 'osoitz', 'name': 'Osoitz' }, { 'username': 'outloudvi', 'name': 'Outvi V' }, {
|
||||||
|
'username': 'quentin',
|
||||||
|
'name': 'Quentí'
|
||||||
|
}, { 'username': 'quentind', 'name': 'Quentin Dupont' }, { 'username': 'rafaelff', 'name': 'Rafael Fontenelle' }, {
|
||||||
|
'username': 'rigelk',
|
||||||
|
'name': 'Rigel Kent'
|
||||||
|
}, { 'username': 's8321414', 'name': 'Jeff Huang' }, { 'username': 'sato_ss', 'name': 'Satoshi Shirosaka' }, {
|
||||||
|
'username': 'sercom_kc',
|
||||||
|
'name': 'SerCom_KC'
|
||||||
|
}, { 'username': 'severo', 'name': 'Sylvain Lesage' }, { 'username': 'silkevicious', 'name': 'Sylke Vicious' }, {
|
||||||
|
'username': 'sosha',
|
||||||
|
'name': 'Sosha'
|
||||||
|
}, { 'username': 'spla', 'name': 'spla' }, { 'username': 'strubbl', 'name': 'Sven' }, {
|
||||||
|
'username': 'swedneck',
|
||||||
|
'name': 'Tim Stahel'
|
||||||
|
}, { 'username': 'tagomago', 'name': 'Tagomago' }, { 'username': 'talone', 'name': 'TitiAlone' }, {
|
||||||
|
'username': 'thibaultmartin',
|
||||||
|
'name': 'Thibault Martin'
|
||||||
|
}, { 'username': 'tirifto', 'name': 'Tirifto' }, { 'username': 'tuxayo', 'name': 'Victor Grousset/tuxayo' }, {
|
||||||
|
'username': 'unextro',
|
||||||
|
'name': 'Ondřej Pokorný'
|
||||||
|
}, { 'username': 'unzarida', 'name': 'unzarida' }, { 'username': 'vincent', 'name': 'Vincent Laporte' }, {
|
||||||
|
'username': 'wanhua',
|
||||||
|
'name': 'wanhua'
|
||||||
|
}, { 'username': 'xinayder', 'name': 'Alexandre' }, { 'username': 'xosem', 'name': 'Xosé M.' }, {
|
||||||
|
'username': 'zveryok',
|
||||||
|
'name': 'Nikitin Stanislav'
|
||||||
|
}, { 'username': '6543', 'name': '6543' }, { 'username': 'aasami', 'name': 'Miroslav Ďurian' }, {
|
||||||
|
'username': 'alidemirtas',
|
||||||
|
'name': 'Ali Demirtas'
|
||||||
|
}, { 'username': 'alpha', 'name': 'Alpha' }, { 'username': 'ariasuni', 'name': 'Mélanie Chauvel' }, {
|
||||||
|
'username': 'bfonton',
|
||||||
|
'name': 'Baptiste Fonton'
|
||||||
|
}, { 'username': 'c0dr', 'name': 'c0dr lnx' }, { 'username': 'canony', 'name': 'canony' }, {
|
||||||
|
'username': 'cat',
|
||||||
|
'name': 'Cat'
|
||||||
|
}, { 'username': 'clerie', 'name': 'Clemens Riese' }, { 'username': 'curupira', 'name': 'Curupira' }, {
|
||||||
|
'username': 'dhsets',
|
||||||
|
'name': 'djsets'
|
||||||
|
}, { 'username': 'digitalkiller', 'name': 'Digital Killer' }, { 'username': 'dwsage', 'name': 'd.w. sage' }, {
|
||||||
|
'username': 'flauta',
|
||||||
|
'name': 'Andrea Primiani'
|
||||||
|
}, { 'username': 'frankstrater', 'name': 'Frank Sträter' }, { 'username': 'gillux', 'name': 'gillux' }, {
|
||||||
|
'username': 'gunchleoc',
|
||||||
|
'name': 'GunChleoc'
|
||||||
|
}, { 'username': 'jaidedtd', 'name': 'Jenga Phoenix' }, { 'username': 'joss2lyon', 'name': 'Josselin' }, {
|
||||||
|
'username': 'kekkotranslates',
|
||||||
|
'name': 'Francesco'
|
||||||
|
}, { 'username': 'kingu', 'name': 'Allan Nordhøy' }, { 'username': 'kittybecca', 'name': 'Rivka bat Tsvi' }, {
|
||||||
|
'username': 'knuxify',
|
||||||
|
'name': 'knuxify'
|
||||||
|
}, { 'username': 'lapor', 'name': 'Kristijan Tkalec' }, { 'username': 'laufor', 'name': 'Lau For' }, {
|
||||||
|
'username': 'lstamellos',
|
||||||
|
'name': 'Loukas Stamellos'
|
||||||
|
}, { 'username': 'lw1', 'name': 'Lukas Winkler' }, { 'username': 'mablr', 'name': 'Mablr' }, {
|
||||||
|
'username': 'marcinmalecki',
|
||||||
|
'name': 'Marcin Małecki'
|
||||||
|
}, { 'username': 'mayana', 'name': 'Mayana' }, { 'username': 'mikeorlov', 'name': 'Michael Orlov' }, {
|
||||||
|
'username': 'nin',
|
||||||
|
'name': 'nz'
|
||||||
|
}, { 'username': 'norbipeti', 'name': 'NorbiPeti' }, { 'username': 'ppnplus', 'name': 'Phongpanot Phairat' }, {
|
||||||
|
'username': 'predatorix',
|
||||||
|
'name': 'Predatorix'
|
||||||
|
}, { 'username': 'robin', 'name': 'Robin Lahtinen' }, { 'username': 'rond', 'name': 'rondnelly nunes' }, {
|
||||||
|
'username': 'secreet',
|
||||||
|
'name': 'Secreet'
|
||||||
|
}, { 'username': 'sftblw', 'name': 'sftblw' }, { 'username': 'sporiff', 'name': 'Ciarán Ainsworth' }, {
|
||||||
|
'username': 'tekuteku',
|
||||||
|
'name': 'tekuteku'
|
||||||
|
}, { 'username': 'thecatjustmeow', 'name': 'Nguyen Huynh Hung' }, { 'username': 'tmota', 'name': 'Tiago Mota' }, {
|
||||||
|
'username': 'uranix',
|
||||||
|
'name': 'Michal Mauser'
|
||||||
|
}, { 'username': 'wakutiteo', 'name': 'Markel' }, {
|
||||||
|
'username': 'wonderingdane',
|
||||||
|
'name': 'Nicolai Ireneo-Larsen'
|
||||||
|
}, { 'username': 'zeynepeliacik', 'name': 'Zeynep Can' } ]
|
||||||
|
}
|
||||||
|
|
||||||
let i = 1
|
function getContributorsBlacklist () {
|
||||||
|
return {
|
||||||
// Hard limit
|
'Florian Bigard': true,
|
||||||
while (i < 20) {
|
'chocobozzz': true,
|
||||||
const result = await get(next + '?page=' + i)
|
'Rigel': true
|
||||||
if (result.length === 0) break
|
|
||||||
|
|
||||||
allResult = allResult.concat(result)
|
|
||||||
i++
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return allResult
|
|
||||||
}
|
|
||||||
|
|
||||||
async function fetchZanata (zanataUsername: string, zanataPassword: string) {
|
|
||||||
const today = new Date().toISOString().split('T')[0]
|
|
||||||
const year2018 = `https://trad.framasoft.org/zanata/rest/project/peertube/version/develop/contributors/2018-01-01..2019-01-01`
|
|
||||||
const year2019 = `https://trad.framasoft.org/zanata/rest/project/peertube/version/develop/contributors/2019-01-01..${today}`
|
|
||||||
|
|
||||||
const headers = {
|
|
||||||
'X-Auth-User': zanataUsername,
|
|
||||||
'X-Auth-Token': zanataPassword
|
|
||||||
}
|
|
||||||
const [ results2018, results2019 ] = await Promise.all([
|
|
||||||
get(year2018, headers),
|
|
||||||
get(year2019, headers)
|
|
||||||
])
|
|
||||||
|
|
||||||
return uniqBy(results2018.concat(results2019) as { username: string }[], 'username')
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ function getEnvCli (server?: ServerInfo) {
|
||||||
return `NODE_ENV=test NODE_APP_INSTANCE=${server.serverNumber}`
|
return `NODE_ENV=test NODE_APP_INSTANCE=${server.serverNumber}`
|
||||||
}
|
}
|
||||||
|
|
||||||
async function execCLI (command: string) {
|
async function execCLI (command: string,) {
|
||||||
return new Promise<string>((res, rej) => {
|
return new Promise<string>((res, rej) => {
|
||||||
exec(command, (err, stdout, stderr) => {
|
exec(command, (err, stdout, stderr) => {
|
||||||
if (err) return rej(err)
|
if (err) return rej(err)
|
||||||
|
|
Loading…
Reference in New Issue