Skip to content

Instantly share code, notes, and snippets.

View JavierCane's full-sized avatar
🤟
Working on @CodelyTV

Javier Ferrer González JavierCane

🤟
Working on @CodelyTV
View GitHub Profile
@JavierCane
JavierCane / listGoogleDriveSharedDocuments.js
Last active February 21, 2024 11:54 — forked from woodwardtw/tellmeyoursecrets.js
Google Spreadsheet script that lists all the shared documents inside a specified folder and all its subfolders recursively. Skips out the documents shared internally (with specified email addresses)
function start() {
const sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow(["Name", "Sharing Access", "Sharing Permission", "Get Editors", "Get Viewers", "Date", "Size", "URL", "Download", "Description", "Type"]);
const folder = DriveApp.getFolderById("folder_id_copied_from_the_url_without_the_google_drive_domain");
recursiveListSharedFiles(folder, sheet);
}
function recursiveListSharedFiles(folder, sheet) {
type MethodKeys<T> = ({ [P in keyof T]: T[P] extends Function ? P : never })[keyof T];
type ClassProps<T> = {
[key in keyof T]:
T[key] extends { value: any }
? Pick<T[key], "value">["value"]
: T[key] extends Object
? ValueObjectPrimitives<T[key]>
: T[key];
};
@JavierCane
JavierCane / vimeoLinksGridView.js
Last active July 20, 2020 10:11
JavaScript statement to copy all Vimeo video titles and links while in the managing page
{
// 👍 Videos folder in grid view (with video duration)
const videosInGridView = Array.from(document.querySelectorAll(".sc-jWBwVP")).reverse();
const videoSummaries = videosInGridView.map(function (video) {
const videoLink = video.querySelector("h4 > a");
const videoTitle = videoLink.getAttribute("title");
const videoUrl = 'https://vimeo.com' + videoLink.getAttribute("href").replace('/settings', '');
<?php
declare(strict_types = 1);
// ******************************************************
// ******************************************************
// 💩🔴✋ HERENCIA ✋🔴💩
// ******************************************************
// ******************************************************
@JavierCane
JavierCane / .env
Created February 21, 2019 11:04
Dockerizing default Symfony project
###> Docker Compose - DB ###
MYSQL_DATABASE=symfony
MYSQL_USER=codely
MYSQL_PASSWORD=c0d3ly
###< Docker Compose - DB ###
# In all environments, the following files are loaded if they exist,
# the later taking precedence over the former:
#
# * .env contains default values for the environment variables needed by the app
# * .env.local uncommitted file with local overrides
<?php
namespace App\Command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use App\Domain\LogEntry;
@JavierCane
JavierCane / composer.json
Last active January 14, 2019 17:49
Basic composer.json
{
"name": "unique-name/kata-name",
"description": "Kata description",
"type": "project",
"license": "proprietary",
"require": {
"php": "^7.3"
},
"require-dev": {
"symfony/var-dumper": "^4.2",
@JavierCane
JavierCane / GildedRose.php
Last active January 14, 2019 17:48
Base for the GildedRose kata
<?php
class GildedRose {
public static function updateQuality(
$items
) {
for ($i = 0; $i < count($items); $i++) {
if (("Aged Brie" != $items[$i]->getName()) && ("Backstage passes to a TAFKAL80ETC concert" != $items[$i]->getName())) {
if ($items[$i]->getQuality() > 0) {
if ("Sulfuras, Hand of Ragnaros" != $items[$i]->getName()) {
<?php
namespace CodelyTv\Context\Meetup\Module\Video\Domain\Create;
use CodelyTv\Context\Meetup\Module\Video\Domain\VideoId;
use CodelyTv\Context\Meetup\Module\Video\Domain\VideoTitle;
use CodelyTv\Context\Meetup\Module\Video\Domain\VideoUrl;
use CodelyTv\Shared\Domain\CourseId;
final class CreateVideoCommandHandler
@JavierCane
JavierCane / CaseClassVisibilitiesSpec.scala
Created November 22, 2017 10:21
Scala Case Class visibilities test example for the CodelyTV Pro Scala course 👉 https://pro.codely.tv/
// Full repo: https://github.com/CodelyTV/scala-intro-examples/
package tv.codely.scala_intro_examples.lesson_09_oop
import org.scalatest.{Matchers, WordSpec}
final class CaseClassVisibilitiesSpec extends WordSpec with Matchers {
private val randomText = "some text"
private val caseClass = CaseClass(attributeInConstruct = randomText)
"Case Class" should {