rovided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type null $last_used Null. * @type null $last_ip Null. * } * @param string $new_password The generated application password in plain text. * @param array $args { * Arguments used to create the application password. * * @type string $name The name of the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * } */ do_action( 'wp_create_application_password', $user_id, $new_item, $new_password, $args ); return array( $new_password, $new_item ); } /** * Gets a user's application passwords. * * @since 5.6.0 * * @param int $user_id User ID. * @return array { * The list of application passwords. * * @type array ...$0 { * @type string $uuid The unique identifier for the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type int|null $last_used The Unix timestamp of the GMT date the application password was last used. * @type string|null $last_ip The IP address the application password was last used by. * } * } */ public static function get_user_application_passwords( $user_id ) { $passwords = get_user_meta( $user_id, static::USERMETA_KEY_APPLICATION_PASSWORDS, true ); if ( ! is_array( $passwords ) ) { return array(); } $save = false; foreach ( $passwords as $i => $password ) { if ( ! isset( $password['uuid'] ) ) { $passwords[ $i ]['uuid'] = wp_generate_uuid4(); $save = true; } } if ( $save ) { static::set_user_application_passwords( $user_id, $passwords ); } return $passwords; } /** * Gets a user's application password with the given UUID. * * @since 5.6.0 * * @param int $user_id User ID. * @param string $uuid The password's UUID. * @return array|null { * The application password if found, null otherwise. * * @type string $uuid The unique identifier for the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type int|null $last_used The Unix timestamp of the GMT date the application password was last used. * @type string|null $last_ip The IP address the application password was last used by. * } */ public static function get_user_application_password( $user_id, $uuid ) { $passwords = static::get_user_application_passwords( $user_id ); foreach ( $passwords as $password ) { if ( $password['uuid'] === $uuid ) { return $password; } } return null; } /** * Checks if an application password with the given name exists for this user. * * @since 5.7.0 * * @param int $user_id User ID. * @param string $name Application name. * @return bool Whether the provided application name exists. */ public static function application_name_exists_for_user( $user_id, $name ) { $passwords = static::get_user_application_passwords( $user_id ); foreach ( $passwords as $password ) { if ( strtolower( $password['name'] ) === strtolower( $name ) ) { return true; } } return false; } /** * Updates an application password. * * @since 5.6.0 * @since 6.8.0 The actual password should now be hashed using wp_fast_hash(). * * @param int $user_id User ID. * @param string $uuid The password's UUID. * @param array $update { * Information about the application password to update. * * @type string $uuid The unique identifier for the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type int|null $last_used The Unix timestamp of the GMT date the application password was last used. * @type string|null $last_ip The IP address the application password was last used by. * } * @return true|WP_Error True if successful, otherwise a WP_Error instance is returned on error. */ public static function update_application_password( $user_id, $uuid, $update = array() ) { $passwords = static::get_user_application_passwords( $user_id ); foreach ( $passwords as &$item ) { if ( $item['uuid'] !== $uuid ) { continue; } if ( ! empty( $update['name'] ) ) { $update['name'] = sanitize_text_field( $update['name'] ); } $save = false; if ( ! empty( $update['name'] ) && $item['name'] !== $update['name'] ) { $item['name'] = $update['name']; $save = true; } if ( $save ) { $saved = static::set_user_application_passwords( $user_id, $passwords ); if ( ! $saved ) { return new WP_Error( 'db_error', __( 'Could not save application password.' ) ); } } /** * Fires when an application password is updated. * * @since 5.6.0 * @since 6.8.0 The password is now hashed using wp_fast_hash() instead of phpass. * Existing passwords may still be hashed using phpass. * * @param int $user_id The user ID. * @param array $item { * The updated application password details. * * @type string $uuid The unique identifier for the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type int|null $last_used The Unix timestamp of the GMT date the application password was last used. * @type string|null $last_ip The IP address the application password was last used by. * } * @param array $update The information to update. */ do_action( 'wp_update_application_password', $user_id, $item, $update ); return true; } return new WP_Error( 'application_password_not_found', __( 'Could not find an application password with that id.' ) ); } /** * Records that an application password has been used. * * @since 5.6.0 * * @param int $user_id User ID. * @param string $uuid The password's UUID. * @return true|WP_Error True if the usage was recorded, a WP_Error if an error occurs. */ public static function record_application_password_usage( $user_id, $uuid ) { $passwords = static::get_user_application_passwords( $user_id ); foreach ( $passwords as &$password ) { if ( $password['uuid'] !== $uuid ) { continue; } // Only record activity once a day. if ( $password['last_used'] + DAY_IN_SECONDS > time() ) { return true; } $password['last_used'] = time(); $password['last_ip'] = $_SERVER['REMOTE_ADDR']; $saved = static::set_user_application_passwords( $user_id, $passwords ); if ( ! $saved ) { return new WP_Error( 'db_error', __( 'Could not save application password.' ) ); } return true; } // Specified application password not found! return new WP_Error( 'application_password_not_found', __( 'Could not find an application password with that id.' ) ); } /** * Deletes an application password. * * @since 5.6.0 * * @param int $user_id User ID. * @param string $uuid The password's UUID. * @return true|WP_Error Whether the password was successfully found and deleted, a WP_Error otherwise. */ public static function delete_application_password( $user_id, $uuid ) { $passwords = static::get_user_application_passwords( $user_id ); foreach ( $passwords as $key => $item ) { if ( $item['uuid'] === $uuid ) { unset( $passwords[ $key ] ); $saved = static::set_user_application_passwords( $user_id, $passwords ); if ( ! $saved ) { return new WP_Error( 'db_error', __( 'Could not delete application password.' ) ); } /** * Fires when an application password is deleted. * * @since 5.6.0 * * @param int $user_id The user ID. * @param array $item The data about the application password. */ do_action( 'wp_delete_application_password', $user_id, $item ); return true; } } return new WP_Error( 'application_password_not_found', __( 'Could not find an application password with that id.' ) ); } /** * Deletes all application passwords for the given user. * * @since 5.6.0 * * @param int $user_id User ID. * @return int|WP_Error The number of passwords that were deleted or a WP_Error on failure. */ public static function delete_all_application_passwords( $user_id ) { $passwords = static::get_user_application_passwords( $user_id ); if ( $passwords ) { $saved = static::set_user_application_passwords( $user_id, array() ); if ( ! $saved ) { return new WP_Error( 'db_error', __( 'Could not delete application passwords.' ) ); } foreach ( $passwords as $item ) { /** This action is documented in wp-includes/class-wp-application-passwords.php */ do_action( 'wp_delete_application_password', $user_id, $item ); } return count( $passwords ); } return 0; } /** * Sets a user's application passwords. * * @since 5.6.0 * * @param int $user_id User ID. * @param array $passwords { * The list of application passwords. * * @type array ...$0 { * @type string $uuid The unique identifier for the application password. * @type string $app_id A UUID provided by the application to uniquely identify it. * @type string $name The name of the application password. * @type string $password A one-way hash of the password. * @type int $created Unix timestamp of when the password was created. * @type int|null $last_used The Unix timestamp of the GMT date the application password was last used. * @type string|null $last_ip The IP address the application password was last used by. * } * } * @return int|bool User meta ID if the key didn't exist (ie. this is the first time that an application password * has been saved for the user), true on successful update, false on failure or if the value passed * is the same as the one that is already in the database. */ protected static function set_user_application_passwords( $user_id, $passwords ) { return update_user_meta( $user_id, static::USERMETA_KEY_APPLICATION_PASSWORDS, $passwords ); } /** * Sanitizes and then splits a password into smaller chunks. * * @since 5.6.0 * * @param string $raw_password The raw application password. * @return string The chunked password. */ public static function chunk_password( #[\SensitiveParameter] $raw_password ) { $raw_password = preg_replace( '/[^a-z\d]/i', '', $raw_password ); return trim( chunk_split( $raw_password, 4, ' ' ) ); } /** * Hashes a plaintext application password. * * @since 6.8.0 * * @param string $password Plaintext password. * @return string Hashed password. */ public static function hash_password( #[\SensitiveParameter] string $password ): string { return wp_fast_hash( $password ); } /** * Checks a plaintext application password against a hashed password. * * @since 6.8.0 * * @param string $password Plaintext password. * @param string $hash Hash of the password to check against. * @return bool Whether the password matches the hashed password. */ public static function check_password( #[\SensitiveParameter] string $password, string $hash ): bool { if ( ! str_starts_with( $hash, '$generic$' ) ) { /* * If the hash doesn't start with `$generic$`, it is a hash created with `wp_hash_password()`. * This is the case for application passwords created before 6.8.0. */ return wp_check_password( $password, $hash ); } return wp_verify_fast_hash( $password, $hash ); } } SLOPPY DRUNK – R& B ROCKERS – KOKO MOJO CD - No Hit Records

SLOPPY DRUNK – R& B ROCKERS – KOKO MOJO CD

90 Years Since Prohibition Ended, The R&B Rockers, Sloppy Drunk is on our historic series and focuses on 90 Years since Prohibition Ended, and looks musically at the The National Prohibition Act and answers the preposterous law in song. The National Prohibition Act, known informally as the Volstead Act aim was to make drinking intoxicating liquids illegal, and the prohibition of consuming alcoholic drinks became law on 17th January 1920. The Anti-Saloon League’s Wayne Wheeler conceived and drafted the bill, which was named after Andrew Volstead, who was the chairman of the House Judiciary Committee, who managed the legislation. The thirteen years of “dry times“ ended on 5th December1933. Jazz trumpeter Oran Thaddeus“Hot Lips“ Page‘s R& B romper “They Raided The Joint“ kicks off the 100 per cent R&B booze party he luckily escapes the law “I was over in the corner, high as I could be“, and thankfully Louis Jordan and His Tympany Five‘s House Party was free from the law “fix me a drink, it’s gotta be rot ….I wanna get high.” Across town Gay Crosse and His Good Humor Six were living high at the Saturday Night Fish Fry, and Jesse Allen is reminiscing about the evenings fun during What A Party. The cork is popped several times during the alcohol enhanced parties attended by; The Bel-Aires who indulge in White Port & Lemon Juice, The Platters are gluten’s for a hangover as the drink and sing the Beer Barrel Boogie, Mr. Swing with Bobby Platers’ Orchestra drink and party with restraint and only sing about the Beer Bottle Boogie, however The Robins have drank to excess and all they have is Empty Bottles. At the bars and taverns around the town you will encounter; Jimmy McCracklin and His Blues Blasters and the amazing Beer Tavern Girl “she drinks twenty quarts of beer in one hour and ten minutes”, Roy Brown with assistance from His Mighty-Mighty Men Bar Room Blues is having no luck, and the solution is “Well, going down to the bar room, buy me a jug of wine.” Wynonie Harris joins in on the albums party and hollers Drinkin’ Wine Spo-Dee-O-Dee, and Down Boy Down “I really got tight, I got so high I thought I could fly“ you know its a good time when you hear him sing, Jay McShann Hootie’s Ignorant Oil is about his lady becoming intoxicated “if you get drunk, why do you do the things you do”, and Bull Moose Jackson and His Orchestra reveal I Know Who Threw The Whiskey (In The Well). The semi-moderate drinkers do not indulge in strong liquor; Mr. Google Eyes Wails “wine, wine, wine ….wino….I can drink all day, I can drink all night” during No Wine, No Women, Jimmy Lewis enjoys Cherry Wine, and Jerry Butler and The Impressions love song Sweet Was The Wine is not about drinking to excess. There are more hard hitting booze titles for you to discover as you listen through the CD album, and the album is a booze soaked dance fest from start to finish.This is the follow up album to Atomicat Records (ACCD145) 90 Years Since Prohibition Ended, The Rockers, Booze Party. The sleeve notes from the compilation/ re-issue producer and Dee Jay Mark Armstrong will provide information on the supporting band and where known the session information. The album is topped off with the best possible sound quality possible from our mastering team at our El Paso, Texas, Studio. The concept is lavishly decorated by design artist Alf Button’s Revenge, and the sleeve is made from top-quality eco-friendly cardboard specially designed to avoid the use of plastic and be environmentally friendly. Koko Mojo Records endeavors to use some lesser-known and for some, perhaps more obscure titles and adds something unexpected to every album. The album is ideal for Dee Jays to fill the dance floor with, and for home listening or while cruising around. You are listening to music from the past and preserving the future! Koko Mojo Records “often imitated, never duplicated.” All that remains is to say, “Crank up the volume and dig these musical gems. Dee Jay Mark Armstrong Bühl, Germany

01 Hot Lips Page They Raided The Joint (Eldridge, Jackson, Page) Continental 1946 02 Louis Jordan and His Tympany Five House Party Decca 1953

03 Gay Crosse and His Good Humor Six Saturday Night Fish Fry RCA Victor 1959

04 The Bel-Aires White Port & Lemon Juice (Woods, Bryant, Graham) Flip 1955

05 The Platters Beer Barrel Boogie (Williams) Federal 1954

06 The Robins Empty Bottles (Thomas) RCA Victor 1953

07 Mr. Google with Billy Ford and V-8’s Eyes No Wine, No Women Okeh 1951

08 Jimmy McCracklin and His Blues Blasters Beer Tavern Girl (Neal) Irma 1957

09 Dossie Terry Thunderbird (Terry, Gray) King 1957

10 Jesse Allen What A Party (Frank) Imperial 1954

11 Roy Brown and His Mighty-Mighty Men Bar Room Blues (Brown) DeLuxe 1951 12 Sonny Boy Williamson Bring Another Half A Pint (Williamson) RCA Victor 1949 13 Walter Brown and Jay McShann’s Quartet Sloppy Drunk (Brown) Mercury 1947 14 Gay Crosse and His Good Humor Six Swallow Dollow RCA Victor 1950

15 Mr. Swing with Bobby Platers’ Orchestra Beer Bottle Boogie (Jenkins) Bullet 1950 16 Earl Bostic vocal Clyde Terrell I Got Loaded (Harris) King 1951

17 Wynonie Harris Drinkin’ Wine Spo-Dee-O-Dee (McGhee, Williams) King 1949 18 Melvin Smith Looped (Allen) RCA Victor 1952

19 Willis ”Gator” Jackson Wine-O-Wine (Stone, Ramson, Nugetre) Atlantic 1952

20 Jimmy Lewis Cherry Wine (Lewis) RCA Victor 1952

21 Jerry Butler and The Impressions Sweet Was The Wine Falcon 1958

22 The Five Scamps Chicken Shack Boogie (no credit) Columbia 1949

Share this:

£ 12.00

Add to Basket

Release Date:

Format: CD Album

All music: Rhythm & Blues

Format: CD

Secret Link