diff --git a/content/bio/andrey.md b/content/bio/andrey-beletsky.md similarity index 88% rename from content/bio/andrey.md rename to content/bio/andrey-beletsky.md index c98a6054..d262e2bd 100644 --- a/content/bio/andrey.md +++ b/content/bio/andrey-beletsky.md @@ -1,6 +1,6 @@ --- -name: Andrey -role: LBRY.tv Engineer -email: Andrey@lbry.com +name: Andrey Beletsky +role: Backend Engineer +email: andrey@lbry.com --- Andrey got into web programming twenty years ago and has done it all, from Perl CGI programming to UI design. At a turning point decided to focus on server-side applications, making exciting technologies accessible to both fellow developers and users. Easily fascinated by distributed and decentralized things. Values understandable code and can agonize over naming a variable for days. Works mostly when everyone is asleep. When not working, travels around South-East Asia, doing scuba diving wherever there’s water around. diff --git a/content/bio/drew-hancock.md b/content/bio/drew-hancock.md new file mode 100644 index 00000000..ad0e745f --- /dev/null +++ b/content/bio/drew-hancock.md @@ -0,0 +1,12 @@ +--- +name: Drew Hancock +role: Community Coordinator +email: drew@lbry.com +twitter: lockoutdays +--- + +Drew's role is to spread awareness of LBRY and get as many people using it as possible. +He's active in the LBRY community, which means he spends a lot of time on social media. +He also produces video content for the official LBRY and Odysee channels. + +Drew is from Missouri and is an avid Kansas City Chiefs fan. \ No newline at end of file diff --git a/content/bio/johnny-nelson.md b/content/bio/johnny-nelson.md new file mode 100644 index 00000000..8941b1ea --- /dev/null +++ b/content/bio/johnny-nelson.md @@ -0,0 +1,17 @@ +--- +name: Johnny Nelson +role: Senior Machine Learning Engineer +email: jbn@lbry.com +twitter: generativist +github: jbn +--- + +Johnny thinks a lot about how attention works on the internet. Having started programming in elementary +school, he became infatuated with how we communicate with and through computers. Eventually, he did +a Ph.D. studying belief systems computationally. Immediately afterwards he left academia, intent on +putting what he learned into practice. + +Johnny cares about the systems we inhabit -- how they allow us to exchange ideas and find each other. +In short, he's motivated by the premise that we can "engineer the noosphere." The internet and +everything after is still in early development! Given that he believes censorship-resistance is a +long-term evolutionary pressure, it doesn't make sense to work on a platform that doesn't treat it as a given. \ No newline at end of file diff --git a/content/bio/josh-finer.md b/content/bio/josh-finer.md index 5e20ffdf..29fc5277 100644 --- a/content/bio/josh-finer.md +++ b/content/bio/josh-finer.md @@ -1,6 +1,6 @@ --- name: Josh Finer -role: Founder, Director of Operations and Analytics +role: Founder, Director of Operations & Analytics email: josh@lbry.com twitter: finer9 github: finer9 diff --git a/content/bio/mark-beamer.md b/content/bio/mark-beamer.md index 77061388..7b870496 100644 --- a/content/bio/mark-beamer.md +++ b/content/bio/mark-beamer.md @@ -1,6 +1,6 @@ --- name: Mark Beamer -role: Backend and Database Engineer +role: Backend Engineer email: mark@lbry.com github: tiger5226 --- diff --git a/content/bio/niko-storni.md b/content/bio/niko-storni.md index 0d779e51..2e65cc57 100644 --- a/content/bio/niko-storni.md +++ b/content/bio/niko-storni.md @@ -1,6 +1,6 @@ --- name: Niko Storni -role: DevOps Engineer +role: Infrastructure Engineer email: Niko@lbry.com twitter: Nikooo777 github: Nikooo777 diff --git a/content/bio/roy-lee.md b/content/bio/roy-lee.md new file mode 100644 index 00000000..18ad8eb3 --- /dev/null +++ b/content/bio/roy-lee.md @@ -0,0 +1,18 @@ +--- +name: Roy Lee +role: Blockchain Engineering Manager +email: roylee@lbry.com +github: roylee17 +--- + +Roy is an outdoor enthusiast, an avid hiker, who has day hiked a few 14ners, including Mt. Whitney, +Langley, Shasta. Recently, he enjoyed his inaugural season of snowboarding at Tahoe, and can’t wait +for more seasons to come. + +Professionally, he is passionate about building software as well as teams. The broad interest in +software architectures, system design, distributed systems, and product development has led him +to the latest endeavor in LBRY. + +Prior to LBRY, he has built and scaled out the Cloud Native Edge Platform at TikTok, which serves +huge traffics around the globe. Before that, he also prototyped and led EMV payment products +developments in PayPal. \ No newline at end of file diff --git a/content/bio/xander-luciano.md b/content/bio/xander-luciano.md new file mode 100644 index 00000000..869f3256 --- /dev/null +++ b/content/bio/xander-luciano.md @@ -0,0 +1,8 @@ +--- +name: Xander Luciano +role: Application Engineer +email: xander@lbry.com +github: DispatchCommit +--- + +Xander works on the apps and livestreaming. \ No newline at end of file diff --git a/controller/Controller.class.php b/controller/Controller.class.php index f2006a12..2979a457 100644 --- a/controller/Controller.class.php +++ b/controller/Controller.class.php @@ -131,6 +131,8 @@ class Controller $router->any('/dmca', 'ReportActions::executeDmca'); $router->any('/dmca/{claimid}', 'ReportActions::executeDmcaWithClaimId'); + $router->any('/team/{slug}', 'TeamActions::executeBio'); + $router->any('/youtube/status/{token}', 'AcquisitionActions::executeYoutubeStatus'); $router->any('/youtube', 'AcquisitionActions::executeYouTube'); diff --git a/controller/action/ContentActions.class.php b/controller/action/ContentActions.class.php index ffd3b6d9..f30674b0 100644 --- a/controller/action/ContentActions.class.php +++ b/controller/action/ContentActions.class.php @@ -231,34 +231,43 @@ class ContentActions extends Actions { $person = $vars['person']; $path = 'bio/' . $person . '.md'; - list($metadata, $bioHtml) = View::parseMarkdown($path); - $imgSrc = 'https://spee.ch/@lbryteam:6/' . $person . '.jpg'; + [$metadata, $bioHtml] = View::parseMarkdown($path); return $vars + $metadata + [ - 'imgSrc' => $imgSrc, - 'bioHtml' => $bioHtml, - 'orientation' => 'vertical' - ]; + 'imgSrc' => '/img/bio/' . $person . '.jpg', + 'bioHtml' => $bioHtml, + ]; + } + + public static function prepareBioCirclePartial(array $vars): array + { + $post = ContentActions::prepareBioPartial(['person' => $vars['slug']]); + return [ + 'bioSlug' => $vars['slug'], + 'imgSrc' => $post['imgSrc'], + 'name' => $post['name'], + 'role' => $post['role'], + ]; } public static function preparePostAuthorPartial(array $vars): array { $post = $vars['post']; return [ - 'authorName' => $post->getAuthorName(), - 'photoImgSrc' => $post->getAuthorPhoto(), - 'authorBioHtml' => $post->getAuthorBioHtml(), - 'authorGithub' => $post->getAuthorGithubID(), - 'authorTwitter' => $post->getAuthorTwitterID(), - 'authorEmail' => $post->getAuthorPostEmail() - ]; + 'authorName' => $post->getAuthorName(), + 'photoImgSrc' => $post->getAuthorPhoto(), + 'authorBioHtml' => $post->getAuthorBioHtml(), + 'authorGithub' => $post->getAuthorGithubID(), + 'authorTwitter' => $post->getAuthorTwitterID(), + 'authorEmail' => $post->getAuthorPostEmail() + ]; } public static function preparePostListPartial(array $vars): array { $count = $vars['count'] ?? 3; return [ - 'posts' => array_slice(Post::find(static::VIEW_FOLDER_NEWS, Post::SORT_DATE_DESC), 0, $count) - ]; + 'posts' => array_slice(Post::find(static::VIEW_FOLDER_NEWS, Post::SORT_DATE_DESC), 0, $count) + ]; } public static function executePostCategoryFilter(string $category) { @@ -269,29 +278,29 @@ class ContentActions extends Actions $posts = array_filter( Post::find(static::VIEW_FOLDER_NEWS, Post::SORT_DATE_DESC), function (Post $post) use ($category) { - return (($post->getCategory() === $category) && (!$post->getDate() || $post->getDate()->format('U') <= date('U'))); - } + return (($post->getCategory() === $category) && (!$post->getDate() || $post->getDate()->format('U') <= date('U'))); + } ); return ['content/news', [ - 'posts' => $posts, - View::LAYOUT_PARAMS => [ - 'showRssLink' => true - ] - ]]; + 'posts' => $posts, + View::LAYOUT_PARAMS => [ + 'showRssLink' => true + ] + ]]; } public static function prepareJobsPartial(array $vars) { $jobs = - array_filter( - array_map('View::parseMarkdown', glob(static::VIEW_FOLDER_JOBS . '/*')), - function ($job) { - return $job[0]['status'] !== 'closed'; - } - ); + array_filter( + array_map('View::parseMarkdown', glob(static::VIEW_FOLDER_JOBS . '/*')), + function ($job) { + return $job[0]['status'] !== 'closed'; + } + ); usort($jobs, function ($jobA, $jobB) { if ($jobA[0]['status'] === 'active' xor $jobB[0]['status'] === 'active') { diff --git a/controller/action/TeamActions.class.php b/controller/action/TeamActions.class.php new file mode 100644 index 00000000..9114cc7a --- /dev/null +++ b/controller/action/TeamActions.class.php @@ -0,0 +1,16 @@ + $slug]]; + } +} diff --git a/view/template/content/_bio.php b/view/template/content/_bio.php index c9deed36..da753d2d 100644 --- a/view/template/content/_bio.php +++ b/view/template/content/_bio.php @@ -33,6 +33,10 @@