Skip to content

Repository files navigation

Movie Draft Happy Fun Time <>

Build a roster of upcoming films and compete for the highest gross earnings.

What is a movie draft?

First, full credit to Night Attack/NSFW Show, Diamond Club, and Chat Relm. The idea of a movie draft is not my own; I simply wrote some software to help my coworkers and I conduct our own.

A movie draft is something like a fantasy sports draft… or so I’m told. Generally, there are two drafts per year: the Summer Block Buster Season and the Winter Oscar Bait Season. A group of friends get together with equal amounts of fake money to buy upcoming movies in an auction. Roughly 30 movies are generally included in the draft, and players bid to purchase them. The goal is to have the highest income from your owned movies using U.S. domestic grosses, ending two weeks after the final movie is released. This implementation is rather U.S.-centric.

General Info

  • There are 2 drafts per year:
    • Summer Blockbuster: Drafting begins in March for movies showing through the end of August.
    • Winter Oscar Bait: Drafting begins in September for movies showing through the end of February.
  • Approximately 30 movies should be chosen per draft.
  • Groups of 4–6 players are best, given the number of movies.
  • The order of movies is randomized prior to drafting.
  • Each week the US domestic film grosses are updated using IMDb.
  • The game ends 14 days after the final movie is released.

Rules Per Team

  • Drafting takes 1–2 hours. Plan accordingly!
  • The draft period opens in the first two weeks of each drafting season. You should coordinate teams
  • Each player gets 100 “Draft Bucks” used to bid on a major film studio release from the current season.
    • Each player has at most $100 to spend on all their combined purchases; they may not exceed $100.
  • Films are put up for auction one at a time in random order to all players.
  • Bidding on a film is open while its trailer plays. Players should speak loudly so that bids are heard during the video.
  • Vigorous discussion is encouraged (and is a large part of the fun).
  • Should the bidding for any film reach $100, players may continue bidding for a lower percentage of that film’s gross.
    • “I bid $100 at 70%” means the film's domestic gross would be multiplied by 0.7 before being applied to the player’s total. A subsequent bid of “$100 at 65%” would take the lead because the player is accepting less of the film’s gross total toward their score.
    • Players must reach $100 bids before bidding down the percentage.
    • Players who do not have $100 may not participate in percentage bidding.
  • If multiple groups are playing (each an independent draft), the winners of each group will compete by drafting efficiency (total Adjusted Gross per Draft Buck spent). The group winner who also has the best efficiency will get ultimate bragging rights.
  • If a large group (8–12) wants to play, players may pair up.

Installation

Install Node.js Fork the repo

git clone <...>
cd draft
npm install

Setup

At the project root, add a .env file with environment variables for the properties below. A sample file is provided. Alternatively, configure your runtime environment manually with the following properties:

  • NODE_ENV: production or development
  • PORT: target HTTP port for Node server
  • DB_TYPE: mysql or postgresql
  • DB_USER: your database username
  • DB_PASSWORD: your database password
  • DB_HOST: your database hostname
  • DB_PORT: database access port
  • DB_NAME: optional schema name
Mac/Linux: `export KEY = VALUE`
Windows: `$env:KEY = VALUE`

Insert draft and movie information into the database with CLI scripts prior to running the server. Example:

cd bin
node create-draft.js

create-draft.js

Inserts a movie draft game in the database. You'll need to enter the season (Summer or Winter), the year, and the dates that the different phases start and stop.

add-movies.js

Adds movies to an existing draft. This is the most time-consuming part. You'll need to have the following for each film:

  • Title
  • Release date
  • IMDb ID
  • YouTube ID for the film’s trailer
  • Poster image URL

edit-movies.js

Prompts for an existing draft, then cycles through the draft's movies one field at a time to make changes as desired.

Running

Launch the server:

npm start

This is an app built on Express. Like most Express apps, it defaults to port 3000 for development. To run on port 80 for production, you will need root permissions and run the server with the port environment variable:

$ sudo NODE_ENV=production PORT=80 npm start

I also recommend using nodemon to keep the app running and automatically restarting when monitored files are edited.

About

Build a roster of upcoming films and compete for the highest gross earnings.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - Zosoled/draft: Build a roster of upcoming films and compete for the highest gross earnings. · GitHub
Skip to content

Repository files navigation

Movie Draft Happy Fun Time <>

Build a roster of upcoming films and compete for the highest gross earnings.

What is a movie draft?

First, full credit to Night Attack/NSFW Show, Diamond Club, and Chat Relm. The idea of a movie draft is not my own; I simply wrote some software to help my coworkers and I conduct our own.

A movie draft is something like a fantasy sports draft… or so I’m told. Generally, there are two drafts per year: the Summer Block Buster Season and the Winter Oscar Bait Season. A group of friends get together with equal amounts of fake money to buy upcoming movies in an auction. Roughly 30 movies are generally included in the draft, and players bid to purchase them. The goal is to have the highest income from your owned movies using U.S. domestic grosses, ending two weeks after the final movie is released. This implementation is rather U.S.-centric.

General Info

  • There are 2 drafts per year:
    • Summer Blockbuster: Drafting begins in March for movies showing through the end of August.
    • Winter Oscar Bait: Drafting begins in September for movies showing through the end of February.
  • Approximately 30 movies should be chosen per draft.
  • Groups of 4–6 players are best, given the number of movies.
  • The order of movies is randomized prior to drafting.
  • Each week the US domestic film grosses are updated using IMDb.
  • The game ends 14 days after the final movie is released.

Rules Per Team

  • Drafting takes 1–2 hours. Plan accordingly!
  • The draft period opens in the first two weeks of each drafting season. You should coordinate teams
  • Each player gets 100 “Draft Bucks” used to bid on a major film studio release from the current season.
    • Each player has at most $100 to spend on all their combined purchases; they may not exceed $100.
  • Films are put up for auction one at a time in random order to all players.
  • Bidding on a film is open while its trailer plays. Players should speak loudly so that bids are heard during the video.
  • Vigorous discussion is encouraged (and is a large part of the fun).
  • Should the bidding for any film reach $100, players may continue bidding for a lower percentage of that film’s gross.
    • “I bid $100 at 70%” means the film's domestic gross would be multiplied by 0.7 before being applied to the player’s total. A subsequent bid of “$100 at 65%” would take the lead because the player is accepting less of the film’s gross total toward their score.
    • Players must reach $100 bids before bidding down the percentage.
    • Players who do not have $100 may not participate in percentage bidding.
  • If multiple groups are playing (each an independent draft), the winners of each group will compete by drafting efficiency (total Adjusted Gross per Draft Buck spent). The group winner who also has the best efficiency will get ultimate bragging rights.
  • If a large group (8–12) wants to play, players may pair up.

Installation

Install Node.js Fork the repo

git clone <...>
cd draft
npm install

Setup

At the project root, add a .env file with environment variables for the properties below. A sample file is provided. Alternatively, configure your runtime environment manually with the following properties:

  • NODE_ENV: production or development
  • PORT: target HTTP port for Node server
  • DB_TYPE: mysql or postgresql
  • DB_USER: your database username
  • DB_PASSWORD: your database password
  • DB_HOST: your database hostname
  • DB_PORT: database access port
  • DB_NAME: optional schema name
Mac/Linux: `export KEY = VALUE`
Windows: `$env:KEY = VALUE`

Insert draft and movie information into the database with CLI scripts prior to running the server. Example:

cd bin
node create-draft.js

create-draft.js

Inserts a movie draft game in the database. You'll need to enter the season (Summer or Winter), the year, and the dates that the different phases start and stop.

add-movies.js

Adds movies to an existing draft. This is the most time-consuming part. You'll need to have the following for each film:

  • Title
  • Release date
  • IMDb ID
  • YouTube ID for the film’s trailer
  • Poster image URL

edit-movies.js

Prompts for an existing draft, then cycles through the draft's movies one field at a time to make changes as desired.

Running

Launch the server:

npm start

This is an app built on Express. Like most Express apps, it defaults to port 3000 for development. To run on port 80 for production, you will need root permissions and run the server with the port environment variable:

$ sudo NODE_ENV=production PORT=80 npm start

I also recommend using nodemon to keep the app running and automatically restarting when monitored files are edited.

About

Build a roster of upcoming films and compete for the highest gross earnings.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Zosoled/draft: Build a roster of upcoming films and compete for the highest gross earnings. · GitHub
Skip to content

Repository files navigation

Movie Draft Happy Fun Time <>

Build a roster of upcoming films and compete for the highest gross earnings.

What is a movie draft?

First, full credit to Night Attack/NSFW Show, Diamond Club, and Chat Relm. The idea of a movie draft is not my own; I simply wrote some software to help my coworkers and I conduct our own.

A movie draft is something like a fantasy sports draft… or so I’m told. Generally, there are two drafts per year: the Summer Block Buster Season and the Winter Oscar Bait Season. A group of friends get together with equal amounts of fake money to buy upcoming movies in an auction. Roughly 30 movies are generally included in the draft, and players bid to purchase them. The goal is to have the highest income from your owned movies using U.S. domestic grosses, ending two weeks after the final movie is released. This implementation is rather U.S.-centric.

General Info

  • There are 2 drafts per year:
    • Summer Blockbuster: Drafting begins in March for movies showing through the end of August.
    • Winter Oscar Bait: Drafting begins in September for movies showing through the end of February.
  • Approximately 30 movies should be chosen per draft.
  • Groups of 4–6 players are best, given the number of movies.
  • The order of movies is randomized prior to drafting.
  • Each week the US domestic film grosses are updated using IMDb.
  • The game ends 14 days after the final movie is released.

Rules Per Team

  • Drafting takes 1–2 hours. Plan accordingly!
  • The draft period opens in the first two weeks of each drafting season. You should coordinate teams
  • Each player gets 100 “Draft Bucks” used to bid on a major film studio release from the current season.
    • Each player has at most $100 to spend on all their combined purchases; they may not exceed $100.
  • Films are put up for auction one at a time in random order to all players.
  • Bidding on a film is open while its trailer plays. Players should speak loudly so that bids are heard during the video.
  • Vigorous discussion is encouraged (and is a large part of the fun).
  • Should the bidding for any film reach $100, players may continue bidding for a lower percentage of that film’s gross.
    • “I bid $100 at 70%” means the film's domestic gross would be multiplied by 0.7 before being applied to the player’s total. A subsequent bid of “$100 at 65%” would take the lead because the player is accepting less of the film’s gross total toward their score.
    • Players must reach $100 bids before bidding down the percentage.
    • Players who do not have $100 may not participate in percentage bidding.
  • If multiple groups are playing (each an independent draft), the winners of each group will compete by drafting efficiency (total Adjusted Gross per Draft Buck spent). The group winner who also has the best efficiency will get ultimate bragging rights.
  • If a large group (8–12) wants to play, players may pair up.

Installation

Install Node.js Fork the repo

git clone <...>
cd draft
npm install

Setup

At the project root, add a .env file with environment variables for the properties below. A sample file is provided. Alternatively, configure your runtime environment manually with the following properties:

  • NODE_ENV: production or development
  • PORT: target HTTP port for Node server
  • DB_TYPE: mysql or postgresql
  • DB_USER: your database username
  • DB_PASSWORD: your database password
  • DB_HOST: your database hostname
  • DB_PORT: database access port
  • DB_NAME: optional schema name
Mac/Linux: `export KEY = VALUE`
Windows: `$env:KEY = VALUE`

Insert draft and movie information into the database with CLI scripts prior to running the server. Example:

cd bin
node create-draft.js

create-draft.js

Inserts a movie draft game in the database. You'll need to enter the season (Summer or Winter), the year, and the dates that the different phases start and stop.

add-movies.js

Adds movies to an existing draft. This is the most time-consuming part. You'll need to have the following for each film:

  • Title
  • Release date
  • IMDb ID
  • YouTube ID for the film’s trailer
  • Poster image URL

edit-movies.js

Prompts for an existing draft, then cycles through the draft's movies one field at a time to make changes as desired.

Running

Launch the server:

npm start

This is an app built on Express. Like most Express apps, it defaults to port 3000 for development. To run on port 80 for production, you will need root permissions and run the server with the port environment variable:

$ sudo NODE_ENV=production PORT=80 npm start

I also recommend using nodemon to keep the app running and automatically restarting when monitored files are edited.

About

Build a roster of upcoming films and compete for the highest gross earnings.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Zosoled/draft: Build a roster of upcoming films and compete for the highest gross earnings. · GitHub
Skip to content

Repository files navigation

Movie Draft Happy Fun Time <>

Build a roster of upcoming films and compete for the highest gross earnings.

What is a movie draft?

First, full credit to Night Attack/NSFW Show, Diamond Club, and Chat Relm. The idea of a movie draft is not my own; I simply wrote some software to help my coworkers and I conduct our own.

A movie draft is something like a fantasy sports draft… or so I’m told. Generally, there are two drafts per year: the Summer Block Buster Season and the Winter Oscar Bait Season. A group of friends get together with equal amounts of fake money to buy upcoming movies in an auction. Roughly 30 movies are generally included in the draft, and players bid to purchase them. The goal is to have the highest income from your owned movies using U.S. domestic grosses, ending two weeks after the final movie is released. This implementation is rather U.S.-centric.

General Info

  • There are 2 drafts per year:
    • Summer Blockbuster: Drafting begins in March for movies showing through the end of August.
    • Winter Oscar Bait: Drafting begins in September for movies showing through the end of February.
  • Approximately 30 movies should be chosen per draft.
  • Groups of 4–6 players are best, given the number of movies.
  • The order of movies is randomized prior to drafting.
  • Each week the US domestic film grosses are updated using IMDb.
  • The game ends 14 days after the final movie is released.

Rules Per Team

  • Drafting takes 1–2 hours. Plan accordingly!
  • The draft period opens in the first two weeks of each drafting season. You should coordinate teams
  • Each player gets 100 “Draft Bucks” used to bid on a major film studio release from the current season.
    • Each player has at most $100 to spend on all their combined purchases; they may not exceed $100.
  • Films are put up for auction one at a time in random order to all players.
  • Bidding on a film is open while its trailer plays. Players should speak loudly so that bids are heard during the video.
  • Vigorous discussion is encouraged (and is a large part of the fun).
  • Should the bidding for any film reach $100, players may continue bidding for a lower percentage of that film’s gross.
    • “I bid $100 at 70%” means the film's domestic gross would be multiplied by 0.7 before being applied to the player’s total. A subsequent bid of “$100 at 65%” would take the lead because the player is accepting less of the film’s gross total toward their score.
    • Players must reach $100 bids before bidding down the percentage.
    • Players who do not have $100 may not participate in percentage bidding.
  • If multiple groups are playing (each an independent draft), the winners of each group will compete by drafting efficiency (total Adjusted Gross per Draft Buck spent). The group winner who also has the best efficiency will get ultimate bragging rights.
  • If a large group (8–12) wants to play, players may pair up.

Installation

Install Node.js Fork the repo

git clone <...>
cd draft
npm install

Setup

At the project root, add a .env file with environment variables for the properties below. A sample file is provided. Alternatively, configure your runtime environment manually with the following properties:

  • NODE_ENV: production or development
  • PORT: target HTTP port for Node server
  • DB_TYPE: mysql or postgresql
  • DB_USER: your database username
  • DB_PASSWORD: your database password
  • DB_HOST: your database hostname
  • DB_PORT: database access port
  • DB_NAME: optional schema name
Mac/Linux: `export KEY = VALUE`
Windows: `$env:KEY = VALUE`

Insert draft and movie information into the database with CLI scripts prior to running the server. Example:

cd bin
node create-draft.js

create-draft.js

Inserts a movie draft game in the database. You'll need to enter the season (Summer or Winter), the year, and the dates that the different phases start and stop.

add-movies.js

Adds movies to an existing draft. This is the most time-consuming part. You'll need to have the following for each film:

  • Title
  • Release date
  • IMDb ID
  • YouTube ID for the film’s trailer
  • Poster image URL

edit-movies.js

Prompts for an existing draft, then cycles through the draft's movies one field at a time to make changes as desired.

Running

Launch the server:

npm start

This is an app built on Express. Like most Express apps, it defaults to port 3000 for development. To run on port 80 for production, you will need root permissions and run the server with the port environment variable:

$ sudo NODE_ENV=production PORT=80 npm start

I also recommend using nodemon to keep the app running and automatically restarting when monitored files are edited.

About

Build a roster of upcoming films and compete for the highest gross earnings.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - Zosoled/draft: Build a roster of upcoming films and compete for the highest gross earnings. · GitHub
Skip to content

Repository files navigation

Movie Draft Happy Fun Time <>

Build a roster of upcoming films and compete for the highest gross earnings.

What is a movie draft?

First, full credit to Night Attack/NSFW Show, Diamond Club, and Chat Relm. The idea of a movie draft is not my own; I simply wrote some software to help my coworkers and I conduct our own.

A movie draft is something like a fantasy sports draft… or so I’m told. Generally, there are two drafts per year: the Summer Block Buster Season and the Winter Oscar Bait Season. A group of friends get together with equal amounts of fake money to buy upcoming movies in an auction. Roughly 30 movies are generally included in the draft, and players bid to purchase them. The goal is to have the highest income from your owned movies using U.S. domestic grosses, ending two weeks after the final movie is released. This implementation is rather U.S.-centric.

General Info

  • There are 2 drafts per year:
    • Summer Blockbuster: Drafting begins in March for movies showing through the end of August.
    • Winter Oscar Bait: Drafting begins in September for movies showing through the end of February.
  • Approximately 30 movies should be chosen per draft.
  • Groups of 4–6 players are best, given the number of movies.
  • The order of movies is randomized prior to drafting.
  • Each week the US domestic film grosses are updated using IMDb.
  • The game ends 14 days after the final movie is released.

Rules Per Team

  • Drafting takes 1–2 hours. Plan accordingly!
  • The draft period opens in the first two weeks of each drafting season. You should coordinate teams
  • Each player gets 100 “Draft Bucks” used to bid on a major film studio release from the current season.
    • Each player has at most $100 to spend on all their combined purchases; they may not exceed $100.
  • Films are put up for auction one at a time in random order to all players.
  • Bidding on a film is open while its trailer plays. Players should speak loudly so that bids are heard during the video.
  • Vigorous discussion is encouraged (and is a large part of the fun).
  • Should the bidding for any film reach $100, players may continue bidding for a lower percentage of that film’s gross.
    • “I bid $100 at 70%” means the film's domestic gross would be multiplied by 0.7 before being applied to the player’s total. A subsequent bid of “$100 at 65%” would take the lead because the player is accepting less of the film’s gross total toward their score.
    • Players must reach $100 bids before bidding down the percentage.
    • Players who do not have $100 may not participate in percentage bidding.
  • If multiple groups are playing (each an independent draft), the winners of each group will compete by drafting efficiency (total Adjusted Gross per Draft Buck spent). The group winner who also has the best efficiency will get ultimate bragging rights.
  • If a large group (8–12) wants to play, players may pair up.

Installation

Install Node.js Fork the repo

git clone <...>
cd draft
npm install

Setup

At the project root, add a .env file with environment variables for the properties below. A sample file is provided. Alternatively, configure your runtime environment manually with the following properties:

  • NODE_ENV: production or development
  • PORT: target HTTP port for Node server
  • DB_TYPE: mysql or postgresql
  • DB_USER: your database username
  • DB_PASSWORD: your database password
  • DB_HOST: your database hostname
  • DB_PORT: database access port
  • DB_NAME: optional schema name
Mac/Linux: `export KEY = VALUE`
Windows: `$env:KEY = VALUE`

Insert draft and movie information into the database with CLI scripts prior to running the server. Example:

cd bin
node create-draft.js

create-draft.js

Inserts a movie draft game in the database. You'll need to enter the season (Summer or Winter), the year, and the dates that the different phases start and stop.

add-movies.js

Adds movies to an existing draft. This is the most time-consuming part. You'll need to have the following for each film:

  • Title
  • Release date
  • IMDb ID
  • YouTube ID for the film’s trailer
  • Poster image URL

edit-movies.js

Prompts for an existing draft, then cycles through the draft's movies one field at a time to make changes as desired.

Running

Launch the server:

npm start

This is an app built on Express. Like most Express apps, it defaults to port 3000 for development. To run on port 80 for production, you will need root permissions and run the server with the port environment variable:

$ sudo NODE_ENV=production PORT=80 npm start

I also recommend using nodemon to keep the app running and automatically restarting when monitored files are edited.

About

Build a roster of upcoming films and compete for the highest gross earnings.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Zosoled/draft: Build a roster of upcoming films and compete for the highest gross earnings. · GitHub
Skip to content

Repository files navigation

Movie Draft Happy Fun Time <>

Build a roster of upcoming films and compete for the highest gross earnings.

What is a movie draft?

First, full credit to Night Attack/NSFW Show, Diamond Club, and Chat Relm. The idea of a movie draft is not my own; I simply wrote some software to help my coworkers and I conduct our own.

A movie draft is something like a fantasy sports draft… or so I’m told. Generally, there are two drafts per year: the Summer Block Buster Season and the Winter Oscar Bait Season. A group of friends get together with equal amounts of fake money to buy upcoming movies in an auction. Roughly 30 movies are generally included in the draft, and players bid to purchase them. The goal is to have the highest income from your owned movies using U.S. domestic grosses, ending two weeks after the final movie is released. This implementation is rather U.S.-centric.

General Info

  • There are 2 drafts per year:
    • Summer Blockbuster: Drafting begins in March for movies showing through the end of August.
    • Winter Oscar Bait: Drafting begins in September for movies showing through the end of February.
  • Approximately 30 movies should be chosen per draft.
  • Groups of 4–6 players are best, given the number of movies.
  • The order of movies is randomized prior to drafting.
  • Each week the US domestic film grosses are updated using IMDb.
  • The game ends 14 days after the final movie is released.

Rules Per Team

  • Drafting takes 1–2 hours. Plan accordingly!
  • The draft period opens in the first two weeks of each drafting season. You should coordinate teams
  • Each player gets 100 “Draft Bucks” used to bid on a major film studio release from the current season.
    • Each player has at most $100 to spend on all their combined purchases; they may not exceed $100.
  • Films are put up for auction one at a time in random order to all players.
  • Bidding on a film is open while its trailer plays. Players should speak loudly so that bids are heard during the video.
  • Vigorous discussion is encouraged (and is a large part of the fun).
  • Should the bidding for any film reach $100, players may continue bidding for a lower percentage of that film’s gross.
    • “I bid $100 at 70%” means the film's domestic gross would be multiplied by 0.7 before being applied to the player’s total. A subsequent bid of “$100 at 65%” would take the lead because the player is accepting less of the film’s gross total toward their score.
    • Players must reach $100 bids before bidding down the percentage.
    • Players who do not have $100 may not participate in percentage bidding.
  • If multiple groups are playing (each an independent draft), the winners of each group will compete by drafting efficiency (total Adjusted Gross per Draft Buck spent). The group winner who also has the best efficiency will get ultimate bragging rights.
  • If a large group (8–12) wants to play, players may pair up.

Installation

Install Node.js Fork the repo

git clone <...>
cd draft
npm install

Setup

At the project root, add a .env file with environment variables for the properties below. A sample file is provided. Alternatively, configure your runtime environment manually with the following properties:

  • NODE_ENV: production or development
  • PORT: target HTTP port for Node server
  • DB_TYPE: mysql or postgresql
  • DB_USER: your database username
  • DB_PASSWORD: your database password
  • DB_HOST: your database hostname
  • DB_PORT: database access port
  • DB_NAME: optional schema name
Mac/Linux: `export KEY = VALUE`
Windows: `$env:KEY = VALUE`

Insert draft and movie information into the database with CLI scripts prior to running the server. Example:

cd bin
node create-draft.js

create-draft.js

Inserts a movie draft game in the database. You'll need to enter the season (Summer or Winter), the year, and the dates that the different phases start and stop.

add-movies.js

Adds movies to an existing draft. This is the most time-consuming part. You'll need to have the following for each film:

  • Title
  • Release date
  • IMDb ID
  • YouTube ID for the film’s trailer
  • Poster image URL

edit-movies.js

Prompts for an existing draft, then cycles through the draft's movies one field at a time to make changes as desired.

Running

Launch the server:

npm start

This is an app built on Express. Like most Express apps, it defaults to port 3000 for development. To run on port 80 for production, you will need root permissions and run the server with the port environment variable:

$ sudo NODE_ENV=production PORT=80 npm start

I also recommend using nodemon to keep the app running and automatically restarting when monitored files are edited.

About

Build a roster of upcoming films and compete for the highest gross earnings.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Zosoled/draft: Build a roster of upcoming films and compete for the highest gross earnings. · GitHub
Skip to content

Repository files navigation

Movie Draft Happy Fun Time <>

Build a roster of upcoming films and compete for the highest gross earnings.

What is a movie draft?

First, full credit to Night Attack/NSFW Show, Diamond Club, and Chat Relm. The idea of a movie draft is not my own; I simply wrote some software to help my coworkers and I conduct our own.

A movie draft is something like a fantasy sports draft… or so I’m told. Generally, there are two drafts per year: the Summer Block Buster Season and the Winter Oscar Bait Season. A group of friends get together with equal amounts of fake money to buy upcoming movies in an auction. Roughly 30 movies are generally included in the draft, and players bid to purchase them. The goal is to have the highest income from your owned movies using U.S. domestic grosses, ending two weeks after the final movie is released. This implementation is rather U.S.-centric.

General Info

  • There are 2 drafts per year:
    • Summer Blockbuster: Drafting begins in March for movies showing through the end of August.
    • Winter Oscar Bait: Drafting begins in September for movies showing through the end of February.
  • Approximately 30 movies should be chosen per draft.
  • Groups of 4–6 players are best, given the number of movies.
  • The order of movies is randomized prior to drafting.
  • Each week the US domestic film grosses are updated using IMDb.
  • The game ends 14 days after the final movie is released.

Rules Per Team

  • Drafting takes 1–2 hours. Plan accordingly!
  • The draft period opens in the first two weeks of each drafting season. You should coordinate teams
  • Each player gets 100 “Draft Bucks” used to bid on a major film studio release from the current season.
    • Each player has at most $100 to spend on all their combined purchases; they may not exceed $100.
  • Films are put up for auction one at a time in random order to all players.
  • Bidding on a film is open while its trailer plays. Players should speak loudly so that bids are heard during the video.
  • Vigorous discussion is encouraged (and is a large part of the fun).
  • Should the bidding for any film reach $100, players may continue bidding for a lower percentage of that film’s gross.
    • “I bid $100 at 70%” means the film's domestic gross would be multiplied by 0.7 before being applied to the player’s total. A subsequent bid of “$100 at 65%” would take the lead because the player is accepting less of the film’s gross total toward their score.
    • Players must reach $100 bids before bidding down the percentage.
    • Players who do not have $100 may not participate in percentage bidding.
  • If multiple groups are playing (each an independent draft), the winners of each group will compete by drafting efficiency (total Adjusted Gross per Draft Buck spent). The group winner who also has the best efficiency will get ultimate bragging rights.
  • If a large group (8–12) wants to play, players may pair up.

Installation

Install Node.js Fork the repo

git clone <...>
cd draft
npm install

Setup

At the project root, add a .env file with environment variables for the properties below. A sample file is provided. Alternatively, configure your runtime environment manually with the following properties:

  • NODE_ENV: production or development
  • PORT: target HTTP port for Node server
  • DB_TYPE: mysql or postgresql
  • DB_USER: your database username
  • DB_PASSWORD: your database password
  • DB_HOST: your database hostname
  • DB_PORT: database access port
  • DB_NAME: optional schema name
Mac/Linux: `export KEY = VALUE`
Windows: `$env:KEY = VALUE`

Insert draft and movie information into the database with CLI scripts prior to running the server. Example:

cd bin
node create-draft.js

create-draft.js

Inserts a movie draft game in the database. You'll need to enter the season (Summer or Winter), the year, and the dates that the different phases start and stop.

add-movies.js

Adds movies to an existing draft. This is the most time-consuming part. You'll need to have the following for each film:

  • Title
  • Release date
  • IMDb ID
  • YouTube ID for the film’s trailer
  • Poster image URL

edit-movies.js

Prompts for an existing draft, then cycles through the draft's movies one field at a time to make changes as desired.

Running

Launch the server:

npm start

This is an app built on Express. Like most Express apps, it defaults to port 3000 for development. To run on port 80 for production, you will need root permissions and run the server with the port environment variable:

$ sudo NODE_ENV=production PORT=80 npm start

I also recommend using nodemon to keep the app running and automatically restarting when monitored files are edited.

About

Build a roster of upcoming films and compete for the highest gross earnings.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - Zosoled/draft: Build a roster of upcoming films and compete for the highest gross earnings. · GitHub
Skip to content

Repository files navigation

Movie Draft Happy Fun Time <>

Build a roster of upcoming films and compete for the highest gross earnings.

What is a movie draft?

First, full credit to Night Attack/NSFW Show, Diamond Club, and Chat Relm. The idea of a movie draft is not my own; I simply wrote some software to help my coworkers and I conduct our own.

A movie draft is something like a fantasy sports draft… or so I’m told. Generally, there are two drafts per year: the Summer Block Buster Season and the Winter Oscar Bait Season. A group of friends get together with equal amounts of fake money to buy upcoming movies in an auction. Roughly 30 movies are generally included in the draft, and players bid to purchase them. The goal is to have the highest income from your owned movies using U.S. domestic grosses, ending two weeks after the final movie is released. This implementation is rather U.S.-centric.

General Info

  • There are 2 drafts per year:
    • Summer Blockbuster: Drafting begins in March for movies showing through the end of August.
    • Winter Oscar Bait: Drafting begins in September for movies showing through the end of February.
  • Approximately 30 movies should be chosen per draft.
  • Groups of 4–6 players are best, given the number of movies.
  • The order of movies is randomized prior to drafting.
  • Each week the US domestic film grosses are updated using IMDb.
  • The game ends 14 days after the final movie is released.

Rules Per Team

  • Drafting takes 1–2 hours. Plan accordingly!
  • The draft period opens in the first two weeks of each drafting season. You should coordinate teams
  • Each player gets 100 “Draft Bucks” used to bid on a major film studio release from the current season.
    • Each player has at most $100 to spend on all their combined purchases; they may not exceed $100.
  • Films are put up for auction one at a time in random order to all players.
  • Bidding on a film is open while its trailer plays. Players should speak loudly so that bids are heard during the video.
  • Vigorous discussion is encouraged (and is a large part of the fun).
  • Should the bidding for any film reach $100, players may continue bidding for a lower percentage of that film’s gross.
    • “I bid $100 at 70%” means the film's domestic gross would be multiplied by 0.7 before being applied to the player’s total. A subsequent bid of “$100 at 65%” would take the lead because the player is accepting less of the film’s gross total toward their score.
    • Players must reach $100 bids before bidding down the percentage.
    • Players who do not have $100 may not participate in percentage bidding.
  • If multiple groups are playing (each an independent draft), the winners of each group will compete by drafting efficiency (total Adjusted Gross per Draft Buck spent). The group winner who also has the best efficiency will get ultimate bragging rights.
  • If a large group (8–12) wants to play, players may pair up.

Installation

Install Node.js Fork the repo

git clone <...>
cd draft
npm install

Setup

At the project root, add a .env file with environment variables for the properties below. A sample file is provided. Alternatively, configure your runtime environment manually with the following properties:

  • NODE_ENV: production or development
  • PORT: target HTTP port for Node server
  • DB_TYPE: mysql or postgresql
  • DB_USER: your database username
  • DB_PASSWORD: your database password
  • DB_HOST: your database hostname
  • DB_PORT: database access port
  • DB_NAME: optional schema name
Mac/Linux: `export KEY = VALUE`
Windows: `$env:KEY = VALUE`

Insert draft and movie information into the database with CLI scripts prior to running the server. Example:

cd bin
node create-draft.js

create-draft.js

Inserts a movie draft game in the database. You'll need to enter the season (Summer or Winter), the year, and the dates that the different phases start and stop.

add-movies.js

Adds movies to an existing draft. This is the most time-consuming part. You'll need to have the following for each film:

  • Title
  • Release date
  • IMDb ID
  • YouTube ID for the film’s trailer
  • Poster image URL

edit-movies.js

Prompts for an existing draft, then cycles through the draft's movies one field at a time to make changes as desired.

Running

Launch the server:

npm start

This is an app built on Express. Like most Express apps, it defaults to port 3000 for development. To run on port 80 for production, you will need root permissions and run the server with the port environment variable:

$ sudo NODE_ENV=production PORT=80 npm start

I also recommend using nodemon to keep the app running and automatically restarting when monitored files are edited.

About

Build a roster of upcoming films and compete for the highest gross earnings.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages